tencentLive
来自于:厦门软云网络科技有限公司立即使用
腾讯云直播
腾讯云直播推流器
该模块可以实现腾讯云直播推流服务,支持直播推流、暂停、继续、停止等基本控制,可以设置基础美颜,也可以支持背景音乐播放。
腾讯云直播播放器
该模块可以实现腾讯云直播拉流播放,支持画面调整、播放控制、消息接收、屏幕截图、截流录制、清晰度无缝切换和直播回看。
技术支持
扫码获取技术支持,引导您跑通Demo和模块接入:
技术支持微信号: ruanyunkeji006
论坛示例
论坛中有我们的使用教程以及示例代码,您可以Demo进入查看详情,联系上方我们技术支持协助接入。
接口列表
初始化与监听
接口列表 | 功能 |
---|---|
init | 初始化 |
setPusherListener | 设置推流监听 |
removePusherListener | 移除推流监听器 |
destroy | 销毁 |
基本控制
接口列表 | 功能 |
---|---|
startPreview | 开启摄像头预览 |
startPush | 摄像头推流 |
pausePush | 暂停推流 |
resumePush | 继续推流 |
stopPush | 停止推流 |
stopPreview | 关闭摄像头预览 |
高级控制
接口列表 | 功能 |
---|---|
isPushing | 是否正在推流 |
setVideoQuality | 设置观众端画面清晰度 |
setRenderRotation | 设置主播画面方向 |
setMirror | 设置镜像 |
美颜相关
接口列表 | 功能 |
---|---|
setBeautyStyle | 设置美颜类型 |
setBeautyLevel | 设置美颜级别 |
setWhitenessLevel | 设置美白级别 |
setRuddyLevel | 设置红润级别 |
enableSharpnessEnhancement | 设置清晰度增强 |
setFilter | 设置指定素材滤镜特效 |
setFilterStrength | 设置滤镜浓度 |
摄像头相关
接口列表 | 功能 |
---|---|
isFrontCamera | 是否为前置摄像头 |
switchCamera | 切换前后摄像头 |
toggleTorch | 打开或者关闭闪光灯 |
getMaxZoom | 获取最大焦距 |
setZoom | 设置焦距 |
setFocusPosition | 设置手动对焦位置 |
setExposureCompensation | 调整曝光比例 |
音频相关
接口列表 | 功能 |
---|---|
setMute | 设置静音 |
enableVoiceEarMonitor | 设置耳返 |
setVoiceReverbType | 设置人声的混响效果 |
setVoiceChangerType | 设置人声的变声特效 |
setVoiceCaptureVolume | 设置麦克风采集人声的音量 |
setMusicListener | 设置音乐监听器 |
removeMusicListener | 移除音乐监听器 |
startPlayMusic | 开始播放背景音乐 |
stopPlayMusic | 停止播放背景音乐 |
pausePlayMusic | 暂停播放背景音乐 |
resumePlayMusic | 恢复播放背景音乐 |
setMusicPublishVolume | 设置背景音乐的远端音量大小 |
setMusicPlayoutVolume | 设置背景音乐的本地音量大小 |
setAllMusicVolume | 设置所有音乐音量高低 |
setMusicPitch | 调整背景音乐音调的高低 |
setMusicSpeedRate | 调整背景音乐的变速效果 |
getMusicCurrentPosInMS | 获取背景音乐当前的播放进度 |
seekMusicToPosInMS | 设置背景音乐播放进度 |
getMusicDurationInMS | 获取背景音乐文件的总时长 |
enableVolumeEvaluation | 启用麦克风采集音量大小评估 |
setVolumeEvaluationListener | 设置麦克风采集音量大小回调 |
removeVolumeEvaluationListener | 移除麦克风采集音量大小回调 |
本地录制
接口列表 | 功能 |
---|---|
setRecordListener | 设置录制监听器 |
removeRecordListener | 移除录制监听器 |
startRecord | 开始录制 |
stopRecord | 停止录制 |
snapshot | 截图 |
发送SEI消息
接口列表 | 功能 |
---|---|
sendMessageEx | 发送SEI消息 |
模块接口
init
初始化推流
init({params}, function(ret, err))
params
licence:
- 类型: JSON对象
- 描述: (可选项) 许可证信息
- 内部字段:
{
key: '00e374exxxx60e8cbb',
url: 'http://licensxxxxiveSDK.licence'
}
- 字段详情:
key:
- 类型: 字符串类型
- 描述: (可选项) 许可证的key
url:
- 类型: 字符串类型
- 描述: (可选项) 许可证的地址
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
代码示例
livePusher.init({
licence: {
'url': '00e37xxxxx8cbb',
'key': 'http://license.vod2.mxxxxxx2eaa1/TXLiveSDK.licence'
}
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setPusherEventListener
设置推流监听
setPusherEventListener({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
or
{
eventType: 'onPushBegin'
}
eventType:
- 类型: 字符串类型
- 描述: 推流事件,详见推流事件
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
代码示例
livePusher.setPusherEventListener({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
removePusherEventListener
移除推流监听器
removePusherEventListener({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.removePusherEventListener({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
destroy
销毁
destroy({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePusher.destroy({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startPreview
开启摄像头预览
startPreview({params}, function(ret, err))
params
rect:
- 类型: JSON对象
- 描述: (必填项) 预览画面的位置和大小
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePusher.startPreview({
rect: {
x: 0,
y: 0,
w: api.winWidth / 2,
h: api.winHeight / 2
}
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startPush
摄像头推流
startPush({params}, function(ret, err))
注意:
-5 返回码代表 license 校验失败,需要 license 校验通过才能工作。
params
rtmpUrl:
- 类型: 字符串类型
- 描述: (必填项) 推流地址
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
- 字段详情:
code:
- 类型: 字符串类型
- 描述: 错误码
- 取值范围:
- -1: 启动失败;
- -5: licence校验失败
示例代码
livePusher.startPush({
rtmpUrl: 'rtmp://xxx.xxxx.xxx/xxx'
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
pausePush
暂停摄像头采集并进入垫片推流状态
pausePush({}, function(ret, err))
SDK 会暂时停止摄像头(或屏幕)采集,并使用 TXLivePushConfig.pauseImg 中指定的图片作为替代图像进行推流,也就是所谓的“垫片”。 这项功能常用于 App 被切到后台运行的场景,尤其是在 iOS 系统中,当 App 切到后台以后,操作系统不会再允许该 App 继续使用摄像头。 此时就可以通过调用 pausePush() 进入垫片状态。
对于绝大多数推流服务器而言,如果超过一定时间不推视频数据,服务器会断开当前的推流链接。
注意:
请注意调用顺序:startPush => ( pausePush => resumePush ) => stopPush(),错误的调用顺序会导致 SDK 表现异常。
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePusher.pausePush({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
resumePush
恢复 RTMP 推流
resumePush({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePusher.resumePush({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopPush
停止 RTMP 推流
stopPush({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePusher.stopPush({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopPreview
停止摄像头预览
stopPreview({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePusher.stopPreview({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
isPushing
查询是否正在推流
isPushing({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
- 字段详情:
isPushing:
- 类型: 布尔类型
- 描述: true表示推流中, false表示没有推流
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.isPushing({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统
可提供的1.0.0及更高版本
setVideoQuality
设置视频编码质量
setVideoQuality({params}, function(ret))
推荐设置: 秀场直播mode => 1, adjustBitrate => false。
params
mode:
- 类型: 整数类型
- 描述: (必填项) 画质类型
- 取值范围: 0: 标清 1: 高清 2: 超清 3: 蓝光 4: 连麦场景下的大主播使用 5: 连麦场景下的小主播(连麦的观众)使用
adjustBitrate:
- 类型: 布尔值
- 描述: (非必填) 动态码率开关
- 默认值: false
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePusher.setVideoQuality({
mode: 0
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setRenderRotation
设置本地摄像头预览画面的旋转方向
setRenderRotation({params}, function(ret, err))
该接口仅能够改变主播本地预览画面的方向,而不会改变观众端的画面效果。 如果希望改变观众端看到的视频画面的方向,比如原来是540x960,希望变成960x540,则可以通过设置 init() 中的 homeOrientation 来实现。
params
rotation:
- 类型: 整数类型
- 描述: (必填项) 主播端摄像头预览视频的顺时针旋转角度
- 取值范围: [0 - 3] 0: 旋转0度 1: 旋转90度 2: 旋转180度 3: 旋转270度
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePusher.setRenderRotation({
rotation: 0
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setMirror
设置视频镜像效果
setMirror({params}, function(ret, err))
由于前置摄像头采集的画面是取自手机的观察视角,如果将采集到的画面直接展示给观众,是完全没有问题的。 但如果将采集到的画面也直接显示给主播,则会跟主播照镜子时的体验完全相反,会让主播感觉到很奇怪。 因此,SDK 会默认开启本地摄像头预览画面的镜像效果,让主播直播时跟照镜子时保持一个体验效果。
setMirror 所影响的则是观众端看到的视频效果,如果想要保持观众端看到的效果跟主播端保持一致,需要开启镜像; 如果想要让观众端看到正常的未经处理过的画面(比如主播弹吉他的时候有类似需求),则可以关闭镜像。
params
isMirror:
- 类型: 布尔类型
- 描述: (必填项) true表示播放端看到的是镜像画面;false播放端看到的是非镜像画面
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setMirror({
isMirror: true
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setBeautyStyle
设置美颜(磨皮)算法
setBeautyStyle({params}, function(ret, err))
SDK 内部集成了两套风格不同的磨皮算法,一套我们取名叫“光滑”,适用于美女秀场,效果比较明显。 另一套我们取名“自然”,磨皮算法更多地保留了面部细节,主观感受上会更加自然。
params
mode:
- 类型: 整数类型
- 描述: (必填项) 美颜风格,光滑或者自然,光滑风格磨皮更加明显,适合娱乐场景
- 取值范围:
- 0: 光滑
- 1: 自然
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
代码示例
livePusher.setBeautyStyle({
mode: 0
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setBeautyLevel
设置美颜级别
setBeautyLevel({params}, function(ret, err))
params
level:
- 类型: 整数类型
- 描述: (必填项) 美颜级别,0表示关闭,1 - 9值越大,效果越明显。
- 取值范围: [0 - 9]
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setBeautyLevel({
level: 1
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setWhitenessLevel
设置美白级别
setWhitenessLevel({params}, function(ret, err))
params
mode:
- 类型: 整数类型
- 描述: (必填项) 美白级别,0表示关闭,1 - 9值越大,效果越明显
- 取值范围: [0 - 9]
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePusher.setWhitenessLevel({
level: 1
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setRuddyLevel
设置红润级别
setRuddyLevel({params}, function(ret, err))
params
level:
- 类型: 整数类型
- 描述: (必填项) 红润级别,0表示关闭,1 - 9值越大,效果越明显。
- 取值范围: [0 - 9]
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setRuddyLevel({
level: 1
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
enableSharpnessEnhancement
设置红润级别
enableSharpnessEnhancement({params}, function(ret, err))
params
enable:
- 类型: 布尔类型
- 描述: (必填项) true表示开启清晰度增强; false表示关闭清晰度增强
- 默认值: true
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.enableSharpnessEnhancement({
enable: true
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setFilter
设置指定素材滤镜特效
setFilter({params}, function(ret, err))
params
img:
- 类型: 字符串类型
- 描述: (必填项) 指定素材,即颜色查找表图片,必须使用 png 格式
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setFilter({
img: '/xxx/xxx/aa.png'
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setFilterStrength
设置滤镜浓度
setFilterStrength({params}, function(ret, err))
在美女秀场等应用场景里,滤镜浓度的要求会比较高,以便更加突显主播的差异。 我们默认的滤镜浓度是0.5,如果您觉得滤镜效果不明显,可以使用下面的接口进行调节。
params
strength:
- 类型: 浮点数类型
- 描述: (必填项) 从0到1,越大滤镜效果越明显
- 默认值: 0.5
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setFilterStrength({
strength: 0.2
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
isFrontCamera
查询当前是否为前置摄像头
isFrontCamera({params}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true, // 布尔类型, true表示操作成功
isFront: true
}
- 字段详情
isFront:
- 类型: 布尔类型
- 描述: true表示前置摄像头; false表示后置摄像头
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.isFrontCamera({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统
可提供的1.0.0及更高版本
switchCamera
切换前后摄像头
switchCamera({params}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.switchCamera({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
toggleTorch
打开后置摄像头旁边的闪关灯
toggleTorch({params}, function(ret, err))
此操作对于前置摄像头是无效的,因为绝大多数手机都没有给前置摄像头配置闪光灯。
params
enable:
- 类型: 布尔类型
- 描述: (必填项) true表示打开; false表示关闭
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.toggleTorch({
enable: true
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统
可提供的1.0.0及更高版本
getMaxZoom
获取摄像头支持的焦距
getMaxZoom({params}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
maxZoom: 10
}
- 字段详情:
maxZoom:
- 类型: 整数类型
- 描述: 最大焦距
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.getMaxZoom({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
Android系统
可提供的1.0.0及更高版本
setZoom
调整摄像头的焦距
setZoom({params}, function(ret, err))
注意:
当 distance 为1的时候为最远视角(正常镜头),当为最大值的时候为最近视角(放大镜头),最大值不要超过,超过后画面会模糊不清。
params
distance:
- 类型: 浮点数类型
- 描述: (必填项) 焦距大小,
- 取值范围:
- iOS: 1 - 5
- Anroid: 1 - getMaxZoom()
- 默认值: 建议设置为1即可
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
代码示例
livePusher.setZoom({
distance: 2
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setFocusPosition
设置手动对焦区域
setFocusPosition({params}, function(ret, err))
SDK 默认使用摄像头自动对焦功能,您也可以通过 init() 中的 touchFocus 选项关闭自动对焦,改用手动对焦。 改用手动对焦之后,需要由主播自己点击摄像头预览画面上的某个区域,来手动指导摄像头对焦。
params
x:
- 类型: 整数类型
- 描述: (必填项) 坐标x
y:
- 类型: 整数类型
- 描述: (必填项) 坐标y
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setFocusPosition({
x: 5,
y: 5
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setExposureCompensation
调整曝光比例
setExposureCompensation({params}, function(ret, err))
params
value:
- 类型: 浮点类型
- 描述: (必填项) 曝光比例,表示该手机支持最大曝光调整值的比例。 负数表示调低曝光,-1是最小值。 正数表示调高曝光,1是最大值。 0表示不调整曝光。
- 取值范围: [-1 - 1]
- 默认值: 0
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '....' // 字符串类型, 错误信息
}
示例代码
livePusher.setExposureCompensation({
value: 0.2
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setMute
开启静音
setMute({params}, function(ret, err))
开启静音后,SDK 并不会继续采集麦克风的声音,但是会用非常低(5kbps 左右)的码率推送伪静音数据, 这样做的目的是为了兼容 H5 上的 video 标签,并让录制出来的 MP4 文件有更好的兼容性。
params
isMute:
- 类型: 布尔类型
- 描述: (可选项) 是否开启静音,true表示开启; false表示关闭。
- 默认值: false
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setMute({
isMute: true
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
enableVoiceEarMonitor
设置耳返
enableVoiceEarMonitor({params}, function(ret))
params
enable:
- 类型: 布尔类型
- 描述: (可选项) true表示开启; false表示关闭
- 默认值: false
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示范代码
livePusher.enableVoiceEarMonitor({
enable: true
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setVoiceReverbType
设置人声的混响效果(KTV、小房间、大会堂、低沉、洪亮...)
setVoiceReverbType({params}, function(ret, err))
注意:
设置的效果在退房后会失效,如果下次进房还需要对应特效,需要调用此接口再次设置。
params
mode:
- 类型: 整数类型
- 描述: (必填项)变声效果
- 取值范围:
- 0: 关闭混响
- 1: KTV
- 2: 小房间
- 3: 大会堂
- 4: 低沉
- 5: 洪亮
- 6: 金属声
- 7: 磁性
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setVoiceReverbType({
mode: 1
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setVoiceChangerType
停止播放背景音乐
setVoiceChangerType({params}, function(ret, err))
params
mode:
- 类型: 整数类型
- 描述: (必填项)变声效果
- 取值范围:
- 0: 关闭变声
- 1: 熊孩子
- 2: 萝莉
- 3: 大叔
- 4: 重金属
- 5: 感冒
- 6: 外国人
- 7: 困兽
- 8: 死肥仔
- 9: 强电流
- 10: 重机械
- 11: 空灵
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setVoiceChangerType({
mode: 2
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setVoiceCaptureVolume
设置麦克风采集人声的音量
setVoiceCaptureVolume({params}, function(ret))
params
volume:
- 类型: 整数类型
- 描述: (必填项) 音量大小,100为原始音量。
- 取值范围: [0 ~ 150]
- 默认值为: 100
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setVoiceCaptureVolume({
volume: 80
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setMusicListener
设置音乐监听
setMusicListener({params}, function(ret, ret))
params
id:
- 类型: 整数类型
- 描述: (必填项) 音乐Id
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
or
{
eventType: '',
...
}
- 字段详情:
eventType:
- 类型: 字符串类型
- 描述: 事件名称,详见背景音乐
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setMusicListener({
id: 3
}, function(ret, err) {
if (ret) {
api.toast({
location: 'bottom',
msg: JSON.stringify(ret)
});
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
removeMusicListener
移除音乐监听
removeMusicListener({params}, function(ret, err))
params
id:
- 类型: 整数类型
- 描述: (必填项) 音乐Id
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.removeMusicListener({
id: 3
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startPlayMusic
开始播放背景音乐
startPlayMusic({params}, function(ret, err))
params
id:
- 类型: 整数类型
- 描述: (必填项) 音乐Id
path:
- 类型: 字符串类型
- 描述: (必填项) 背景音乐地址
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.startPlayMusic({
id: 3,
path: 'http://bgm-1252xxxxxud.com/keluodiya.mp3'
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopPlayMusic
停止播放背景音乐
stopPlayMusic({params}, function(ret, err))
params
id:
- 类型: 整数类型
- 描述: (必填项) 音乐Id
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.stopPlayMusic({
id: 3
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
pausePlayMusic
暂停播放背景音乐
pausePlayMusic({params}, function(ret))
params
id:
- 类型: 整数类型
- 描述: (必填项) 音乐Id
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.pausePlayMusic({
id: 3
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
resumePlayMusic
恢复播放背景音乐
resumePlayMusic({params}, function(ret, err))
params
id:
- 类型: 整数类型
- 描述: (必填项) 音乐Id
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.resumePlayMusic({
id: 3
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setMusicPublishVolume
设置背景音乐的远端音量大小,即主播可以通过此接口设置远端观众能听到的背景音乐的音量大小。
setMusicPublishVolume({params}, function(ret, err))
params
id:
- 类型: 整数类型
- 描述: (必填项) 音乐Id
volume:
- 类型: 整数类型
- 描述: (必填项) 音量大小,100为原始音量。
- 取值范围: [0-150]
- 默认值: 100
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
代码示例
livePusher.setMusicPublishVolume({
id: 3,
volume: 100
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setMusicPlayoutVolume
设置背景音乐的本地音量大小,即主播可以通过此接口设置主播自己本地的背景音乐的音量大小。
setMusicPlayoutVolume({params}, function(ret, err))
params
id:
- 类型: 整数类型
- 描述: (必填项)音乐Id
volume:
- 类型: 整数类型
- 描述: (必填项) 音量大小,100为原始音量。
- 取值范围: [0-150]
- 默认值: 100
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
代码示例
livePusher.setMusicPlayoutVolume({
id: 3,
volume: 100
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setAllMusicVolume
设置全局背景音乐的本地和远端音量的大小
setAllMusicVolume({params}, function(ret, err))
params
volume:
- 类型: 整数类型
- 描述: (必填项) 音量大小,100为原始音量。
- 取值范围: [0-150]
- 默认值: 100
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setAllMusicVolume({
volume: 100
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setMusicPitch
调整背景音乐的音调高低
setMusicPitch({params}, function(ret, err))
params
id:
- 类型: 整数类型
- 描述: (必填项) 音乐Id
pitch:
- 类型: 浮点数类型
- 描述: (必填项) 音调
- 取值范围: [-1 ~ 1]
- 默认值: 0.0
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setMusicPitch({
id: 3,
pitch: 0
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setMusicSpeedRate
调整背景音乐的变速效果
setMusicSpeedRate({params}, function(ret, err))
params
id:
- 类型: 整数类型
- 描述: (必填项) 音乐Id
speedRate:
- 类型: 浮点数类型
- 描述: (必填项) 速度
- 取值范围: [0.5 ~ 2]
- 默认值: 1.0
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setMusicSpeedRate({
id: 3,
speedRate: 0.5
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getMusicCurrentPosInMS
获取背景音乐当前的播放进度(单位:毫秒)
getMusicCurrentPosInMS({params}, function(ret, err))
params
id:
- 类型: 整数类型
- 描述: (必填项) 音乐Id
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
- 字段详情:
pos:
- 类型: 整数类型
- 描述: 当前播放时间,单位:毫秒
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.getMusicCurrentPosInMS({
id: 3
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
seekMusicToPosInMS
设置背景音乐的播放进度(单位:毫秒)
seekMusicToPosInMS({params}, function(ret, err))
params
id:
- 类型: 整数类型
- 描述: (必填项) 音乐Id
pts:
- 类型: 整数类型
- 描述: (必填项) 要跳转的播放进度时间
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.seekMusicToPosInMS({
id: id,
pts: pts
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getMusicDurationInMS
获取景音乐文件的总时长(单位:毫秒)
getMusicDurationInMS({params}, function(ret, err))
params
path:
- 类型: 字符串类型
- 描述: (非必填) 音乐文件路径,如果 path 为空,那么返回当前正在播放的 music 时长
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
duration: 11000
}
- 字段详情:
duration:
- 类型: 字符串类型
- 描述: 时长
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.getMusicDurationInMS({
path: 'http://bgm-xxxxxud.com/keluodiya.mp3'
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
enableVolumeEvaluation
启用麦克风采集音量大小评估
enableVolumeEvaluation({params}, function(ret, err))
开启后会在 volumeEvaluationListener 中获取到 SDK 对麦克风采集音量大小值的评估。
params
interval:
- 类型: 整数类型
- 描述: (必填项) 决定了 volumeEvaluationListener 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms。
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.enableVolumeEvaluation({
interval: 300
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setVolumeEvaluationListener
设置麦克风采集音量大小回调接口
setVolumeEvaluationListener({params}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
or
{
eventType: 'onAudioVolumeEvaluation'
volume: 10
}
- 字段详情:
eventType:
- 类型: 字符串类型
- 描述: 事件名称,详见音量大小回调
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setVolumeEvaluationListener({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
removeVolumeEvaluationListener
移除麦克风采集音量大小回调接口
removeVolumeEvaluationListener({params}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.removeVolumeEvaluationListener({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setRecordListener
设置录制监听
setRecordListener({params}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
or
{
eventType: 'onRecordProgress',
progress: 1000
result: {
...
}
}
eventType:
- 类型: 字符串类型
- 描述: 录制事件,详见录制事件
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.setRecordListener({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
removeRecordListener
移除录制监听
removeRecordListener({params}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.removeRecordListener({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startRecord
开始录制短视频
startRecord({params}, function(ret, err))
注意:
只有启动推流后才能开始录制,非推流状态下启动录制无效。 出于安装包体积的考虑,仅专业版和企业版两个版本的支持该功能,本版本仅定义了接口但并未实现。 录制过程中请勿动态切换分辨率和软硬编,会有很大概率导致生成的视频异常。
params
path:
- 类型: 字符串类型
- 描述: (必填项) 视频录制后存储路径
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
- 字段详情:
code:
- 类型: 整数类型
- 描述: 错误码
- 取值范围:
- -1:videoPath 为空;
- -2:上次录制尚未结束,请先调用 stopRecord;
- -3:推流尚未开始。
示例代码
livePusher.startRecord({
path: 'fs://tencentLivePusher/record/record.mp4'
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopRecord
结束录制短视频,当停止推流后,如果视频还在录制中,SDK 内部会自动结束录制。
stopRecord({params}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
- 字段详情:
code:
- 类型: 整数类型
- 描述: 错误码
- 取值范围:
- 1: 不存在录制任务
示例代码
livePusher.stopRecord({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
snapshot
推流过程中本地截图
snapshot({params}, function(ret, err))
params
path:
- 类型: 字符串类型
- 描述: (必填项) 截图路径
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true, // 布尔类型, true表示操作成功
path: '/xxxxx/xxxx/xxx.png'
}
- 字段详情:
path:
- 类型: 字符串类型
- 描述: 截图的路径
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.snapshot({
path: 'fs://tencentLivePusher/snapshot/snapshot01.png'
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
sendMessageEx
发送 SEI 消息,播放端(tencentLivePlayer)通过 onPlayGetMessageEvt 来接收该消息。
sendMessageEx({params}, function(ret, err))
本接口是将数据直接塞入视频数据头中,因此不能太大(几个字节比较合适),一般常用于塞入自定义时间戳等信息。
params
msg:
- 类型: 字符串类型
- 描述: (必填项) 发送的消息内容
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
示例代码
livePusher.sendMessageEx({
msg: 'this is a sei msg'
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
事件回调
推流事件
常规事件
一次成功的推流都会通知的事件有(例如,收到onOpenCameraSuccEvt就意味着摄像头的画面开始渲染)
onConnectSuccEvt
已经成功连接到腾讯云推流服务器
{
eventType: 'onConnecctSuccEvt'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
onPushBeginEvt
与服务器握手完毕,一切正常,准备开始推流
{
eventType: 'onPushBeginEvt'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
onOpenCameraSuccEvt
推流器已成功打开摄像头(部分 Android 手机在此过程需要耗时1s - 2s)
{
eventType: 'onOpenCameraSuccEvt'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
错误通知
SDK 发现部分严重问题,推流无法继续(例如,用户禁用了 App 的 Camera 权限导致摄像头打不开)
onOpenCameraFailErr
打开摄像头失败
{
eventType: 'onOpenCameraFailErr'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
onOpenMicFailErr
打开麦克风失败
{
eventType: 'onOpenMicFailErr'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
onVideoEncodeFailErr
视频编码失败
{
eventType: 'onVideoEncodeFailErr'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
onAudioEncodeFailErr
音频编码失败
{
eventType: 'onAudioEncodeFailErr'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
onUnsupportedResolutionErr
不支持的视频分辨率
{
eventType: 'onUnsupportedResolutionErr'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
onUnsupportedSamplerateErr
不支持的音频采样率
{
eventType: 'onUnsupportedSamplerateErr'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
onNetDisconnectErr
网络断连,且经三次重连无效,更多重试请自行重启推流
{
eventType: 'onNetDisconnectErr'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
警告事件
SDK 发现部分警告问题,但 WARNING 级别的事件都会触发一些尝试性的保护逻辑或者恢复逻辑,而且有很大概率能够恢复。
- onNetBusyWarn:
主播网络差,如果您需要 UI 提示,这个 WARNING 相对比较有用。
- onServerDisconnect:
推流请求被后台拒绝,一般是由于推流地址里的 txSecret 计算错误,或者是推流地址被其他人占用(一个推流 URL 同时只能有一个端推流)。
onNetBusyWarn
网络状况不佳:上行带宽太小,上传数据受阻
{
eventType: 'onNetBusyWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
onReconnectWarn
网络断连,已启动自动重连(自动重连连续失败超过三次会放弃)
{
eventType: 'onReconnectWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
onHWAccelerationFailWarn
硬编码启动失败,采用软编码
{
eventType: 'onHWAccelerationFailWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
onDNSFailWarn
RTMP - DNS 解析失败(会触发重试流程)
{
eventType: 'onDNSFailWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
onServerConnFailWarn
RTMP 服务器连接失败(会触发重试流程)
{
eventType: 'onServerConnFailWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
onShakeFailWarn
RTMP 服务器握手失败(会触发重试流程)
{
eventType: 'onShakeFailWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
onServerDisconnectWarn
RTMP 服务器主动断开连接(会触发重试流程)
{
eventType: 'onServerDisconnectWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 时间名称
录制事件
onRecordEvent
录制事件通知
{
eventType: 'onRecordEvent',
event: {
...
}
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
event:
- 类型: JSON对象
- 描述: 事件信息
onRecordProgress
短视频录制进度
{
eventType: 'onRecordProgress',
progress: 1000
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
progress:
- 类型: 整数类型
- 描述: 录制时长
onRecordComplete
短视频录制完成
{
eventType: 'onRecordComplete',
result: {
coverImage: '/xxxx/xxx.png',
videoPath: '/xxx/xxx/xxx.mp4'
}
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
result:
- 类型: JSON对象
- 描述: 录制结果
- 字段详情:
coverImage:
- 类型: 字符串类型
- 描述: 录制的封面的路径
videoPath:
- 类型: 字符串类型
- 描述: 录制的视频路径
背景音乐
onStart
开始播放回调
{
eventType: 'onStart',
errCode: 0
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
errCode:
- 类型: 整数类型
- 描述: 错误码
onProgress
播放进度回调
{
eventType: 'onProgress',
progressMS: 1100,
durationMS: 120000
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
progressMS:
- 类型: 整数类型
- 描述: 播放进度,单位毫秒
durationMS:
- 类型: 整数类型
- 描述: 时长,单位毫秒
onComplete
播放结束回调
{
eventType: 'onComplete',
errCode: 0
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
errCode:
- 类型: 整数类型
- 描述: 错误码
音量大小回调
onAudioVolumeEvaluationNotify
音量大小回调
{
eventType: 'onAudioVolumeEvaluationNotify'
volume: 10
}
- 字段详情:
eventType:
- 类型: 字符串类型
- 描述: 事件名词
volume:
- 类型: 整数类型
- 描述: 音量大小
接口列表
初始化与监听
接口列表 | 功能 |
---|---|
init | 初始化 |
setPlayerListener | 设置播放监听器 |
removePlayerListener | 移除播放监听 |
destroy | 销毁播放器 |
基本控制
接口列表 | 功能 |
---|---|
start | 启动从指定URL播放音视频流 |
isPlaying | 获取当前播放状态 |
pause | 暂停播放 |
resume | 继续播放 |
stop | 停止播放音视频流 |
视频相关
接口列表 | 功能 |
---|---|
setRenderMode | 设置画面的裁剪模式 |
setRenderRotation | 设置画面的方向 |
setHwAcc | 开启硬件加速 |
switchStream | 清晰度切换 |
音频相关
接口列表 | 功能 |
---|---|
setMute | 设置是否静音 |
setVolume | 设置音量 |
setAudioRoute | 设置声音播放模式 |
setVolumeEvaluationListener | 设置音量大小评估监听 |
removeVolumeEvaluationListener | 移除音量大小评估监听 |
enableVolumeEvaluation | 启用音量大小评估 |
视频录制
接口列表 | 功能 |
---|---|
setRecordListener | 设置录制监听器 |
removeRecordListener | 移除录制监听 |
startRecord | 开始视频录制 |
stopRecord | 停止录制 |
snapshot | 播放器截图 |
直播时移
接口列表 | 功能 |
---|---|
prepareLiveSeek | 直播时移准备 |
seek | 直播时移跳转 |
resumeLive | 恢复直播服务 |
模块接口
init
初始化拉流播放器
init({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.init({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供1.0.0及更高版本
setPlayerListener
设置播放监听
setPlayerListener(({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
or
{
eventType: 'onConnectSuccessEvt'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称, 详见回调事件
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
代码示例
livePlayer.setPlayerEventListener({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供1.0.0及更高版本
removePlayerListener
移除播放监听
removePlayerListener({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.removePlayerEventListener({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供1.0.0及更高版本
destroy
销毁
destroy({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.destroy({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供1.0.0及更高版本
start
启动从指定 URL 播放音视频流
start({params}, function(ret, err))
params
flvUrl:
- 类型: 字符串类型
- 描述: (必填项) 完整的url
rect:
- 类型: JSON对象
- 描述: (必填项) 视频显示区域的位置和大小
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.start({
rect: {
x: 0,
y: 0,
w: self.playerWidth,
h: self.playerHeight
},
flvUrl: ''
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供1.0.0及更高版本
isPlaying
是否正在播放
isPlaying({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true, // 布尔类型, true表示操作成功
isPlaying: true
}
- 字段详情:
isPlaying:
- 类型: 布尔类型
- 描述: true表示拉流中, false表示没有拉流
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.isPlaying({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供1.0.0及更高版本
pause
暂停播放
此接口会暂停数据拉流,不会销毁播放器,暂停后,播放器会显示最后一帧数据图像
pause({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.pause({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供1.0.0及更高版本
resume
继续播放
resume({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.resume({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
stop
销毁播放器及其视图
stop({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.stop({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
setRenderMode
设置画面的裁剪模式
setRenderMode({params}, function(ret, err))
params
mode:
- 类型: 整数类型
- 描述: (必填项) 裁剪模式
- 取值范围:
- 0: 图像铺满屏幕,不留黑边,如果图像宽高比不同于屏幕宽高比,部分画面内容会被裁剪掉
- 1: 图像适应屏幕,保持画面完整,但如果图像宽高比不同于屏幕宽高比,会有黑边的存在
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.setRenderMode({
mode: 0
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
setRenderRotation
设置画面的方向
setRenderRotation({params}, function(ret, err))
params
rotation:
- 类型: 整数类型
- 描述: (必填项) 方向
- 取值范围: [0 ~ 3]
- 0: HOME 键在右边,横屏模式
- 1: HOME 键在下面,手机直播中最常见的竖屏直播模式
- 2: HOME 键在左边,横屏模式
- 3: HOME 键在上边,竖屏直播(适合小米 MIX2)
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.setRenderRotation({
rotation: 1
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
setHwAcc
是否开启硬件加速
setHwAcc({params}, function(ret, err))
params
enable:
- 类型: 布尔类型
- 描述: (必填项) true表示开启硬件加速, false表示禁用硬件加速
- 默认值: false
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.setHwAcc({
isHwAcc: true
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
switchStream
FLV 直播无缝切换
switchStream({params}, function(ret, err))
params
url:
- 类型: 字符串类型
- 描述: (必填项) 播放地址
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.switchStream({
url: self.switchUrl
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
setMute
设置静音
setMute({params}, function(ret, err))
params
isMute:
- 类型: 布尔类型
- 描述: (必填项) 是否静音
- 默认值: true
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.setMute({
isMute: true
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
setVolume
设置音量
setVolume({params}, function(ret, err))
params
volume:
- 类型: 整数类型
- 描述: (必填项) 音量大小
- 取值范围: [0 - 100]
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.setVolume({
volume: self.volume
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
setAudioRoute
设置声音播放模式(切换扬声器,听筒)
setAudioRoute({params}, function(ret, err))
params
mode:
- 类型: 整数类型
- 描述: (必填项) 声音播放模式
- 取值范围:
- 0: 扬声器,位于手机底部,声音偏大,适合外放音乐
- 1: 听筒,位于手机顶部,声音偏小,适合通话
callback(ret)
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.setAudioRoute({
mode: self.audioRoute
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
setVolumeEvaluationListener
设置音量大小回调接口
setVolumeEvaluationListener({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
{
eventType: 'onAudioVolumeEvaluationNotify',
volume: 112
}
- 字段详情:
eventType:
- 类型: 字符串类型
- 描述: 事件名称
- 取值范围:
- onAudioVolumeEvaluationNotify: 音量回调
volume:
- 类型: 整数类型
- 描述: 音量大小
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.setVolumeEvaluationListener({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
removeVolumeEvaluationListener
移除音量大小回调
removeVolumeEvaluationListener({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.removeVolumeEvaluationListener({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
enableVolumeEvaluation
启用音量大小提示
enableVolumeEvaluation({params}, function(ret, err))
开启后会在 setVolumeEvaluationListener 中获取到 SDK 对音量大小值的评估。
params
interval:
- 类型: 整数类型
- 描述: (必填项) 决定了回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.enableVolumeEvaluation({
interval: 300
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
setRecordListener
设置短视频录制回调
setRecordListener({params}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
or
{
eventType: 'onRecordProgress',
progress: 113
}
- 字段详情:
eventType:
- 类型: 字符串类型
- 描述: 事件名称
- 取值范围:
- onRecordEvent: 录制事件
- onRecordProgress: 录制进度
- onRecordComplete: 录制结束
progress:
- 类型: 整数类型
- 描述: 录制进度
result:
- 类型: JSON对象
- 描述: 录制结果
{
coverImage: 'xxxx',
videoPath: 'xxxx'
}
coverImage:
- 类型: 字符串类型
- 描述: 封面图片路径
videoPath:
- 类型: 字符串类型
- 描述: 录制的视频路径
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.setRecordListener({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
removeRecordListener
移除录制监听
removeRecordListener({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.removeRecordListener({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
startRecord
开始录制短视频
startRecord({params}, function(ret, err))
params
type:
- 类型: 整数类型
- 描述: (必填项) 录制类型
- 取值范围: 0
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.startRecord({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
stopRecord
结束录制短视频
stopRecord({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.stopRecord({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
snapshot
截屏
snapshot({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
path: '/livePlayer/snapshot/snapshot_xxx.png'
}
- 字段详情:
path:
- 类型: 字符串类型
- 描述: 生成截图的路径
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.snapshot({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
prepareLiveSeek
直播时移准备,拉取该直播流的起始播放时间。
prepareLiveSeek({params}, function(ret, err))
使用时移功能需在播放开始后调用此方法,否则时移失败。
警告:
非腾讯云直播地址不能时移
params
appId:
- 类型: 字符串类型
- 描述: (必填项) 应用Id
domain:
- 类型: 字符串类型
- 描述: (必填项) 时移域名
bizid:
- 类型: 整数类型
- 描述: (必填项) 流bizid
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.prepareLiveSeek({
appId: 134321,
domain: 'http://xxx.xxx.xxx/xxx',
bizid: 98
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
seek
播放跳转到音视频流某个时间
seek({params}, function(ret, err))
params
second:
- 类型: 整数类型
- 描述: (必填项) 流时间,单位为秒
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.liveSeek({
second: 50
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
resumeLive
停止时移播放,返回直播
resumeLive({}, function(ret, err))
callback
ret:
- 类型: JSON对象
- 内部字段:
{
status: true // 布尔类型, true表示操作成功
}
err:
- 类型: JSON对象
- 内部字段:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
示例代码
livePlayer.resumeLive({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS, Android系统
可提供的1.0.0及更高版本
事件回调
您可以为 RY-TencentLivePlayer 对象绑定一个 setPlayerEventListener,之后 SDK 的内部状态信息均会通过事件通知和状态反馈通知给您。
播放事件
onConnectSuccessEvt
已经连接服务器
{
eventType: 'onConnectSuccessEvt'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onRtmpStreamBeginEvt
已经连接服务器,开始拉流(仅播放 RTMP 地址时会抛送)
{
eventType: 'onRtmpStreamBeginEvt'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onRcvFirstIFrameEvt
网络接收到首个可渲染的视频数据包(IDR)
{
eventType: 'onRcvFirstIFrameEvt'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onPlayBeginEvt
视频播放开始,如果有转菊花什么的这个时候该停了
{
eventType: 'onPlayBeginEvt'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onPlayLoadingEvt
视频播放 loading,如果能够恢复,之后会有 BEGIN 事件
{
eventType: 'onPlayLoadingEvt'
}
不要在收到 onPlayLoadingEvt 后隐藏播放画面 因为 onPlayLoadingEvt -> onPlayBeginEvt 的时间长短是不确定的,可能是 5s 也可能是 5ms,有些客户考虑在 LOADING 时隐藏画面, BEGIN 时显示画面,会造成严重的画面闪烁(尤其是直播场景下)。推荐的做法是在视频播放画面上叠加一个半透明的 loading 动画
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onGetMessageEvt
用于接收夹在音视频流中的消息
{
eventType: 'onGetMessageEvt',
msg: 'This is a message'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
msg:
- 类型: 字符类型
- 描述: 消息内容
结束事件
onPlayEndEvt
视频播放结束
{
eventType: 'onPlayEndEvt'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onNetDisconnectErr
网络断连,且经多次重连亦不能恢复,更多重试请自行重启播放
{
eventType: 'onNetDisconnectErr'
}
如何判断直播已结束?
基于各种标准的实现原理不同,很多直播流通常没有结束事件(onPlayEndEvt)抛出,此时可预期的表现是:主播结束推流后,SDK 会很快发现数据流拉取失败(onReconnectWarn),然后开始重试,直至三次重试失败后抛出 onNetDisconnectErr 事件。 所以 onPlayEndEvt 和 onNetDisconnectErr 都要监听,用来作为直播结束的判定事件。
eventType:
- 类型: 字符串类型
- 描述: 事件名称
警告事件
如下的这些事件您可以不用关心,我们只是基于白盒化的 SDK 设计理念,将事件信息同步出来
onVideoDecodeFailWarn
当前视频帧解码失败
{
eventType: 'onVideoDecodeFailWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onAudioDecodeFailWarn
当前音频帧解码失败
{
eventType: 'onAudioDecodeFailWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onReconnectWarn
网络断连, 已启动自动重连(重连超过三次就直接抛送 onNetDisconnectErr 了)
{
eventType: 'onReconnectWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onRecvDataLagWarn
网络来包不稳:可能是下行带宽不足,或由于主播端出流不均匀
{
eventType: 'onRecvDataLagWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onVideoPlayLagWarn
当前视频播放出现卡顿
{
eventType: 'onVideoPlayLagWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onHWAccelerationFailWarn
硬解启动失败,采用软解
{
eventType: 'onHWAccelerationFailWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onVideoDisconntinuityWarn
当前视频帧不连续,可能丢帧
{
eventType: 'onVideoDisconntinuityWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onDnsFailWarn
RTMP-DNS 解析失败(仅播放 RTMP 地址时会抛送)
{
eventType: 'onDnsFailWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onServerConnFailWarn
RTMP 服务器连接失败(仅播放 RTMP 地址时会抛送)
{
eventType: 'onServerConnFailWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称
onShakeFailWarn
RTMP 服务器握手失败(仅播放 RTMP 地址时会抛送)
{
eventType: 'onShakeFailWarn'
}
eventType:
- 类型: 字符串类型
- 描述: 事件名称