alivcLivePusher
来自于:官方立即使用
推流相关接口
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
概述
产品简介
阿里云推流SDK(ApsaraVideo for Live Streaming SDK)是基于阿里云强大内容分发网络和音视频实时通讯技术支持下的直播客户端推流开发工具,为用户提供简单易用的开放接口、网络自适应的流畅体验、多节点的低延迟优化、功能强大的实时美颜等音视频直播技术服务。SDK免费提供给所有开发者,让用户告别复杂的架构设计,降低维护成本,专注于自身业务逻辑实现和用户体验的提升。
使用流程
流程 : 用户APP向APPServer发起请求,获取推流URL -> AppServer根据规则拼接推流URL返回给APP -> APP赋值推流URL到推流SDK,使用推流SDK发起推流 -> 推流SDK将直播流推送到CDN
系统要求
- ios:
- SDK支持iPhone5s及以上版本,iOS8.0及以上版本
- 硬件CPU支持ARMv7、ARMv7s、ARM64
- Android:
- SDK支持Android 4.3及以上版本
- 硬件CPU支持ARM64、ARMV7
不能同时添加的模块:aliyunLive 等同样是封装阿里云SDK的模块。
注意
1.使用该模块时需要使用升级后的编译环境,请在云编译的时候勾选“使用升级环境编译”,并且在控制台 “高级设置” 中将固件版本设置为 4.3.1或以上,在编译之前需要勾选蓝牙权限
initPusher
初始化推流
initPusher({params},callback(ret, err))
params
resolution:
- 类型:字符串
- 描述:分辨率
- 默认:540P
- 取值范围:
- 540P
- 720P
- 1080P
initialVideoBitrate:
- 类型:数字类型
- 描述:初始化码率
- 默认:800(Kbps)
targetVideoBitrate:
- 类型:数字类型
- 描述:目标码率
- 默认:800(Kbps)
minVideoBitrate:
- 类型:数字类型
- 描述:最小码率
- 默认:400(Kbps)
qualityMode:
- 类型:字符串
- 描述:码控
- 默认:ResolutionFirst
- 取值范围:
- ResolutionFirst (清晰度优先模式)
- FluencyFirst (流畅度优先模式)
- Custom (自定义模式,SDK会根据开发者设置的码率进行配置)
beautyMode:
- 类型:字符串
- 描述:美颜模式
- 默认:professional
- 取值范围:
- professional (专业版,具备人脸识别功能。可以调节含瘦脸、大眼、小脸、腮红等。)
- normal (普通版,不具备人脸识别功能)
beautyEnable:
- 类型:布尔类型
- 描述:是否开启美颜 (ios 不支持)
- 默认:false
previewOrientation:
- 类型:字符串
- 描述:推流方向设置
- 默认:PORTRAIT
- 取值范围:
- PORTRAIT
- LANDSCAPE_HOME_RIGHT
- LANDSCAPE_HOME_LEFT
fps:
- 类型:数字类型
- 描述:帧率
- 默认:20
videoOnly:
- 类型:布尔类型
- 描述:纯视频推流 (如果设置为false则为纯音频推流)注意:1.如果不调用startPreview接口进行预览的话,推流会失败 2.与 audioOnly互斥 3.如果videOnly和audioOnly都设置为false,则视频和音频都可以推流
- 默认:false
audioOnly:
- 类型:布尔类型
- 描述:纯视频推流 (如果设置为false则为纯音频推流)注意:1.如果不调用startPreview接口进行预览的话,推流会失败 2.与 videoOnly互斥
- 默认:false
waterMarkImage:
- 类型: json对象
- 描述:(可选项)水印图片,不添加该参数,则无水印图片
- 内部字段:
path: '', //字符串类型,图片的路径,支持fs://,widget://(android 不支持widget://)
coordX: 0.1, //数字类型,水印左上顶点x的相对坐标,默认0.1 取值范围:[0,1]
coordY: 0.1, //数字类型,水印左上顶点y的相对坐标,默认0.1 取值范围:[0,1]
width:0.3 //数字类型,水印的相对宽度 (水印会根据水印图片实际大小和水印宽度等比缩放),默认0.3 取值范围:[0,1]
cameraType:
- 类型:字符串
- 描述:相机方向
- 默认:front
- 取值范围:
- back
- front
externMainStream:
- 类型:布尔
- 描述:开启允许外部流输入 仅支持iOS
- 默认:false
externVideoFormat:
- 类型:字符串
- 描述:外部自定义视频数据 仅支持iOS
- 默认:YUVNV21
取值范围:
- YUVNV21
- BGR
- RGB
- ARGB
- BGRA
- RGBA
- YUV420P
- YUVYV12
- YUVNV21
- YUVNV12
- YUVJ420P
- YUVJ420SP
- YUVJ444P
YUV444P
externAudioFormat:
类型:字符串
- 描述: 外部自定义音频数据 仅支持iOS
- 取值范围:
- U8
- S16
- S32
- F32
- U8P
- S16P
- S32P
- F32P
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status : true //初始化是否成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.initPusher({
resolution:540P,
// ...
},function(ret){
alert(JSON.stringify(ret));
})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
showDebugView
显示调试悬浮窗
注意 :Debug悬浮窗会占用一定的系统资源,只可用于APP研发的Debug阶段,Release版本请勿调用此接口,Android需要打开悬浮窗权限
showDebugView()
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.showDebugView();
})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
hideDebugView
隐藏调试悬浮窗
hideDebugView()
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.hideDebugView()
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
sendMessage
插入SEI消息(在线问答,推送问题或者答案消息)
sendMessage({params},callback(ret))
params
msg:
- 类型:字符串类型
- 描述: 需要插入流的SEI消息体,建议是json格式。阿里云播放器SDK可收到此SEI消息
repeatCount:
- 类型:数字类型
- 描述: 发送的帧数。设置100,则在接下去的100帧均插入此SEI消息。
delayTime:
- 类型:数字类型
- 描述:延时多少毫秒发送
KeyFrameOnly:
- 类型:布尔
- 描述:是否只发关键帧
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status : true // 是否成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.sendMessage({
msg:'',
repeatCount:'',
delayTime:'',
KeyFrameOnly:''
},function(ret){
alert(JSON.stringify(ret));
})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startPreview
开始预览
startPreview({params},callback(ret))
params
rect:
- 类型:JSON 类型
- 描述:(可选项)预览窗口的位置及大小
- 内部字段:
{
x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w:300, //(可选项)数字类型;模块宽度(相对于所属的 Window 或 Frame;默认300
h:600 //(可选项)数字类型;模块高度(相对于所属的 Window 或 Frame;默认300
}
fixedOn:
- 类型:字符串类型
- 描述:(可选项)模块添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
fixed:
- 类型:布尔
- 描述:(可选项)模块是否随所属 window 或 frame 滚动
- 默认值:true(不随之滚动)
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status : true // 预览界面是否打开成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.startPreview(function(ret){
alert(JSON.stringify(ret));
})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startPush
开始推流
startPush(callback(ret))
Params
url:
- 类型:字符串类型
- 描述:推流地址
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status : true //推流是否成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.startPush(function(ret){
alert(JSON.stringify(ret));
})
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopPush
停止推流
stopPush()
callback
ret:
- 类型:JSON对象 (仅支持iOS)
- 描述:返回值
{
status : true //成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.stopPush();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
pause
暂停推流
pause()
callback
ret:
- 类型:JSON对象 (仅支持iOS)
- 描述:返回值
{
status : true //成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.pause();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
resume
回复推流
pause()
callback
ret:
- 类型:JSON对象 (仅支持iOS)
- 描述:返回值
{
status : true //成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.resume();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
restartPush
重新开始推流
restartPush()
callback
ret:
- 类型:JSON对象 (仅支持iOS)
- 描述:返回值
{
status : true //成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.restartPush();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
reconnectPush
推流重连
reconnectPush()
callback
ret:
- 类型:JSON对象 (仅支持iOS)
- 描述:返回值
{
status : true //成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.reconnectPush();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
destroy
销毁推流
destroy()
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.destroy();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setMute
设置静音
setMute({params})
Params
isMute:
- 类型:布尔类型
- 描述:是否静音
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.setMute({
isMute:true
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
switchCamera
切换摄像头 (必须在预览或者推流成功后才能调用)
switchCamera()
callback
ret:
- 类型:JSON对象 (仅支持iOS)
- 描述:返回值
{
status : true //成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.switchCamera();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setFlash
设置闪关灯 (必须在预览或者推流成功后才能调用)
setFlash({params})
Params
isFlash:
- 类型:布尔类型
- 描述:是否开启闪关灯
callback
ret:
- 类型:JSON对象 (仅支持iOS)
- 描述:返回值
{
status : true //成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.setFlash({
isFlash:true
});
可用性
iOS系统
可提供的1.0.0及更高版本
setPreviewMirror
打开预览镜像 (必须在预览或者推流成功后才能调用)
setPreviewMirror()
Params
isMirror:
- 类型:布尔类型
- 描述:是否打开预览镜像
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.setPreviewMirror({
isMirror:true
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setPushMirror
打开推流镜像 (必须在预览或者推流成功后才能调用)
setPreviewMirror({params})
Params
isMirror:
- 类型:布尔类型
- 描述:是否打开推流镜像
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.setPushMirror({
isMirror:true
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setBeautyOn
是否打开美颜 (必须在预览或者推流成功后才能调用)
setBeautyOn({params})
Params
isBeautyOn:
- 类型:布尔类型
- 描述:是否打开美颜
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.setBeautyOn({
isBeautyOn:true
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setBeautyValues
设置美颜参数 (必须在预览或者推流成功后才能调用)
setBeautyValues({params})
Params
beautyWhite:
- 类型:数字类型
- 描述:美白
- 默认:50
- 取值:0-100
beautyBuffing:
- 类型:数字类型
- 描述:磨皮
- 默认:50
- 取值:0-100
beautyRuddy:
- 类型:数字类型
- 描述:红润
- 默认:50
- 取值:1-100
beautyCheekPink:
- 类型:数字类型:
- 描述:设置美颜 瘦脸程度
- 默认:50
- 取值:0-100
beautyThinFace:
- 类型:数字类型
- 描述:设置美颜 收下巴程度
- 默认:50
- 取值:1-100
beautyShortenFace:
- 类型:数字类型
- 描述: 腮红度
- 默认:50
- 取值:1-100
beautyBigEye:
- 类型:数字类型
- 描述:大眼程度
- 默认:50
- 取值:1-100
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.setBeautyValues({
beautyRuddy:50
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setAutoFocus
是否自动对焦 (必须在预览或者推流成功后才能调用)
setAutoFocus({params})
Params
isAutoFocus:
- 类型:布尔类型
- 描述:是否自动对焦
callback
ret:
- 类型:JSON对象 (仅支持iOS)
- 描述:返回值
{
status : true //成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.setAutoFocus({
isAutoFocus:true
});
可用性
iOS系统
可提供的1.0.0及更高版本
focusCameraAtAdjustedPoint
手动对焦 (必须在预览或者推流成功后才能调用)
focusCameraAtAdjustedPoint({params})
Params
x:
- 类型:数字类型
- 描述:对焦坐标x
y:
- 类型:数字类型
- 描述:对焦坐标y
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.focusCameraAtAdjustedPoint({
x:100,
y:100
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setZoom
设置缩放 (必须在预览或者推流成功后才能调用)
setZoom({params})
Params
zoom:
- 类型:数字类型
- 描述:缩放大小
- 取值范围:[0, getMaxZoom()]
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.setZoom({
zoom:5
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getMaxZoom
获取缩放最大值 (必须在预览或者推流成功后才能调用)
getMaxZoom(callback(ret))
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
maxZoom : 5 //最大缩放值
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.getMaxZoom(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getCurrentZoom
获取当前缩放值 (必须在预览或者推流成功后才能调用)
getCurrentZoom(callback(ret))
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
currentZoom : 5 //当前缩放值
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.getCurrentZoom(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
isPushing
是否正在推流 (必须在预览或者推流成功后才能调用)
isPushing(callback(ret))
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
isPushing : true //是否正在推流
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.isPushing(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getPushUrl
获取推流地址 (必须在预览或者推流成功后才能调用)
getPushUrl(callback(ret))
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
pushUrl : '' //推流地址
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.getPushUrl(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startBGMWithMusicPathAsync
播放背景音乐 注意:背景音乐相关接口在开始预览之后才可调用
startBGMWithMusicPathAsync(params,callback(ret))
params
path:
- 类型:字符串类型
- 描述: 背景音乐路径
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.startBGMWithMusicPathAsync({
path:'',
},function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopBGMAsync
停止播放背景音乐
stopBGMAsync(callback(ret))
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.stopBGMAsync();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
pauseBGM
暂停播放背景音乐
pauseBGM()
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.pauseBGM();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
resumeBGM
恢复播放背景音乐
resumeBGM()
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.resumeBGM();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setBGMLoop
设置背景音乐是否循环播放
setBGMLoop(params)
params
isLoop:
- 类型:布尔类型
- 描述:是否循环
- 默认:false
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.setBGMLoop({
isLoop:false,
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setBGMEarsBack
设置背景音乐耳返开关
setBGMEarsBack(params,callback(ret))
params
isOpen:
- 类型:布尔类型
- 描述:是否打开耳返
- 默认:false
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.setBGMEarsBack({
isOpen:false,
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setAudioDenoise
设置降噪开关
setAudioDenoise(params,callback(ret))
params
isOpen:
- 类型:布尔类型
- 描述:是否打开降噪
- 默认:false
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.setAudioDenoise({
isOpen:false,
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setBGMVolume
设置背景音乐混音 音乐音量
setBGMVolume(params,callback(ret))
params
volume:
- 类型:数字类型
- 描述:音乐音量大小
- 取值范围:[0 ~ 100]
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.setBGMVolume({
volume:50,
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setCaptureVolume
设置背景音乐混音 人声音量
setCaptureVolume(params,callback(ret))
params
volume:
- 类型:数字类型
- 描述:人声音量大小
- 取值范围:[0 ~ 100]
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.setCaptureVolume({
volume:50,
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addEventListener
监听推流相关事件
addEventListener(callback(ret))
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
eventType:'previewStarted' // 预览开始 previewStarted
// 预览停止 previewStoped
// 开始推流 pushStarted
// 暂停推流 pushPauesed
// 恢复推流 pushResumed
// 推送停止 pushStoped
// 重新推送 pushRestarted
// 首帧预览 firstFramePreviewed
// 丢帧 dropFrame(仅支持安卓)
// 码率调整 adjustBitRate(仅支持安卓)
// 帧率调整 adjustFps(仅支持安卓)
// 网络差 networkPoor
// 网络恢复 networkRecovery
// 重连开始 reconnectStart
// 重连失败 reconnectFail
// 重连成功 reconnectSucceed
// 发送数据失败 sendDataTimeout
// 连接失败 connectFail
// 系统错误 systemError(仅支持iOS)
// SDK错误 SDKError(仅支持iOS)
code:1 // 错误码(仅当是系统错误或SDK错误时有值)
msg:'' // 错误信息 (仅当是系统错误或SDK错误时有值)
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.addEventListener(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
#isCameraSupportAutoFocus 相机是否支持自动对焦 isCameraSupportAutoFocus(callback(ret)) ##callback ret: - 类型:JSON对象 - 描述:返回值js
{
isSupport:true // boolean类型;是否支持自动对焦
}
##示例代码
js
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.isCameraSupportAutoFocus(function(ret){
alert(JSON.stringify(ret));
});
##可用性
Android系统
可提供的1.0.0及更高版本
#isCameraSupportFlash
相机是否支持闪关灯
isCameraSupportFlash(callback(ret))
##callback
ret:
- 类型:JSON对象
- 描述:返回值
js
{
isSupport:true // boolean类型;是否支持自动对焦
}
##示例代码
js
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.isCameraSupportFlash(function(ret){
alert(JSON.stringify(ret));
});
##可用性
Android系统
可提供的1.0.0及更高版本
getLiveStatus
获取当前推流状态
getLiveStatus(callback(ret))
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
livePushStatus:0 // 数字类型;0:空闲
1:初始化成功
2:打开预览中
3:正在预览
4:推流连接中
5:正在推流
6:停止推流中
7:暂停推流中
8:暂停推流
9:恢复推流中
10:重启推流中
11:错误状态
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.getLiveStatus(function(ret){
alert(JSON.stringify(ret));
});
可用性
android, ios系统
可提供的1.0.0及更高版本
setpreviewDisplayMode
预览窗口显示模式
注意:本设置只对预览显示生效,实际推出去的视频流的分辨率和AlivcLivePushConfig中预设置的分辨率一致,并不会因为更改预览显示模式而变化,预览显示模式是为了适配不同尺寸的手机,推流用户可以自由地选择预览效果。
setpreviewDisplayMode(params)
params
displayModel:
- 类型:数字类型
- 描述:预览显示模式
- 取值范围:[0 ~ 2],0: 铺满窗口,视频比例和窗口比例不一致时预览会有变形 1: 保持视频比例,视频比例和窗口比例不一致时有黑边 2: 剪切视频以适配窗口比例,视频比例和窗口比例不一致时会裁剪视频
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.setpreviewDisplayMode(function(ret){
alert(JSON.stringify(ret));
});
可用性
android, ios系统
可提供的1.0.0及更高版本
startScreenCapture
开始录屏 (注意:android系统该接口只能在5.0及以上的系统版本中使用)
注意:1.iOS若要使用录屏功能,需要在初始化接口里面设置externMainStream参数为true 2.iOS可以通过getPushUrl接口获取录屏视频的地址
startScreenCapture(params, ret)
params
url:
- 类型:字符串
- 描述:推送url iOS不支持
networkPoorImage:
- 类型:字符串
- 描述:在网络环境较差的情况下显示的图片(android仅支持fs://及系统本地路径)iOS不支持
pausePushImage:
- 类型:字符串
- 描述:暂停推流时(即调用pauseScreenCapture)客户端显示的画面(android仅支持fs://及系统本地路径)iOS不支持
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status:false, // 布尔类型;是否录屏成功
msg:'not support screen capture' // 字符串;返回消息
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.startScreenCapture({
url:'rtmp://push-videocall.aliyun.com/pushdemo/streamtest',
networkPoorImage:'fs://image/networkPoor.png',
pausePushImage:'fs://image/pushPaused.png'
},function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,android
可提供的1.0.0及更高版本
startCamera
打开相机预览(即在录屏页面开启一个预览小窗口)
startCamera(params, ret)
params
rect:
- 类型:JSON 类型
- 描述:(可选项)预览窗口的位置及大小(建议窗口比例1:1,这样在转屏时无需重新startCamera)
- 内部字段:
{
x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w:200, //(可选项)数字类型;模块宽度(相对于所属的 Window 或 Frame;默认200
h:200 //(可选项)数字类型;模块高度(相对于所属的 Window 或 Frame;默认200
}
fixedOn:
- 类型:字符串类型
- 描述:(可选项)模块添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
fixed:
- 类型:布尔
- 描述:(可选项)模块是否随所属 window 或 frame 滚动
- 默认值:true(不随之滚动)
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status:true, // 布尔类型;打开预览成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.startCamera({
rect:{
x:0,
y:0,
w:200,
h:200
}
},function(ret){
alert(JSON.stringify(ret));
});
可用性
android
可提供的1.0.0及更高版本
stopCamera
关闭预览窗口
stopCamera(params, ret)
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status:true, // 布尔类型;关闭预览成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.startCamera(function(ret){
alert(JSON.stringify(ret));
});
可用性
android
可提供的1.0.0及更高版本
startCameraMix
打开混流(改接口与startCamera的区别是录制端无需开启预览页面,如一些游戏主播在直播时不会开启预览页面以免挡住游戏画面)
startCameraMix(params, ret)
params
rect:
- 类型:JSON 类型
- 描述:(可选项)混流窗口的位置及大小(建议窗口比例1:1,这样在转屏时无需重新startCamera)
- 内部字段:
{
x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w:200, //(可选项)数字类型;模块宽度(相对于所属的 Window 或 Frame;默认200
h:200 //(可选项)数字类型;模块高度(相对于所属的 Window 或 Frame;默认200
}
fixedOn:
- 类型:字符串类型
- 描述:(可选项)模块添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
fixed:
- 类型:布尔
- 描述:(可选项)模块是否随所属 window 或 frame 滚动
- 默认值:true(不随之滚动)
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status:true, // 布尔类型;打开混流成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.startCameraMix({
rect:{
x:0,
y:0,
w:200,
h:200
}
},function(ret){
alert(JSON.stringify(ret));
});
可用性
android
可提供的1.0.0及更高版本
stopCameraMix
关闭混流 stopCameraMix(params, ret)
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status:true, // 布尔类型;关闭混流成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.stopCameraMix(function(ret){
alert(JSON.stringify(ret));
});
可用性
android
可提供的1.0.0及更高版本
pauseScreenCapture
暂停录屏(比如需要输入密码等一些私密操作前可以调用此方法)
pauseScreenCapture(params, ret)
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status:false, // 布尔类型;是否暂停成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.pauseScreenCapture(function(ret){
alert(JSON.stringify(ret));
});
可用性
android
可提供的1.0.0及更高版本
resumeScreenCapture
恢复录屏
resumeScreenCapture(params, ret)
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status:false, // 布尔类型;是否恢复成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.resumeScreenCapture(function(ret){
alert(JSON.stringify(ret));
});
可用性
android
可提供的1.0.0及更高版本
stopScreenCapture
停止录屏 (注意:android系统该接口只能在5.0及以上的系统版本中使用)
注意:iOS可以通过getPushUrl接口获取录屏视频的地址
stopScreenCapture( ret)
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status:false, // 布尔类型;是否录屏成功
msg:'not support screen capture' // 字符串;返回消息
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.stopScreenCapture(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.4及更高版本
addDynamicWaterMarkImage
添加贴图
addDynamicWaterMarkImage({params},callback(ret, err))
params
rect:
- 类型:JSON 类型
- 描述:(可选项)预览窗口的位置及大小
- 内部字段:
{
x: 0, //(可选项)数字类型;左上角的 x 坐标;默认值:0 取值范围(0~1.0f)
y: 0, //(可选项)数字类型;左上角的 y 坐标;默认值:0 取值范围(0~1.0f)
w:0.1, //(可选项)数字类型;贴图宽度;默认:0.1 取值范围(0~1.0f)
h:0.1 //(可选项)数字类型;贴图高度;默认:0.1 取值范围(0~1.0f)
}
path:
- 类型:字符串类型
- 描述:贴图路径 //字符串类型,图片的路径,支持fs://,widget://(android 不支持widget://)
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status:false, // 布尔类型;是否添加成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.addDynamicWaterMarkImage({
rect:{
x:0,
y:0,
w:0.1,
h:0.1
},
path:''
},function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.4及更高版本
removeDynamicWaterMark
删除贴图
removeDynamicWaterMark({params},callback(ret, err))
params
imgId:
- 类型:数字类型
- 描述:要删除的贴纸id
callback
ret:
- 类型:JSON对象
- 描述:返回值
{
status:false, // 布尔类型;是否删除成功
}
示例代码
var alivcLivePusher = api.require('alivcLivePusher');
alivcLivePusher.removeDynamicWaterMark({
ingId:1
},function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.4及更高版本