该插件可以实现腾讯云直播推流服务,支持直播推流、暂停、继续、停止等基本控制,可以设置基础美颜,也可以支持背景音乐播放。
扫码获取技术支持,引导您跑通Demo和插件接入:
技术支持微信号: ruanyunkeji006
论坛中有我们的使用教程以及示例代码,您可以Demo进入查看详情,联系上方我们技术支持协助接入。
## 接口列表接口列表 | 功能 |
---|---|
init | 初始化 |
setPusherEventListener | 设置推流监听 |
removePusherEventListener | 移除推流监听器 |
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 | 截图 |
接口列表 | 功能 |
---|---|
sendMessageEx | 发送SEI消息 |
初始化推流
init({params}, function(ret, err))
licence:
{
key: '00e374exxxx60e8cbb',
url: 'http://licensxxxxiveSDK.licence'
}
key:
url:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
livePusher.init({
licence: {
'url': '00e37xxxxx8cbb',
'key': 'http://license.vod2.mxxxxxx2eaa1/TXLiveSDK.licence'
}
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置推流监听
setPusherEventListener({}, function(ret, err))
ret:
{
status: true // 布尔类型, true表示操作成功
}
回调事件:
{
eventType: 'onPushBegin'
}
eventType:
err:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
livePusher.setPusherEventListener({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#removePusherEventListener
移除推流监听器
removePusherEventListener({}, function(ret, err))
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.removePusherEventListener({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#destroy
销毁
destroy({}, function(ret, err))
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
livePusher.destroy({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#startPreview
开启摄像头预览
startPreview({params}, function(ret, err))
rect:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
livePusher.startPreview({
rect: {
x: 0,
y: 0,
w: api.winWidth / 2,
h: api.winHeight / 2
}
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#startPush
摄像头推流
startPush({params}, function(ret, err))
注意: -5 返回码代表 license 校验失败,需要 license 校验通过才能工作。
rtmpUrl:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
code:
livePusher.startPush({
rtmpUrl: 'rtmp://xxx.xxxx.xxx/xxx'
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: 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 表现异常。
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
livePusher.pausePush({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#resumePush
恢复 RTMP 推流
resumePush({}, function(ret, err))
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
livePusher.resumePush({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#stopPush
停止 RTMP 推流
stopPush({}, function(ret, err))
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
livePusher.stopPush({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#stopPreview
停止摄像头预览
stopPreview({}, function(ret, err))
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
livePusher.stopPreview({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#isPushing
查询是否正在推流
isPushing({}, function(ret, err))
ret:
{
status: true // 布尔类型, true表示操作成功
}
isPushing:
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.isPushing({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统
可提供的1.0.0及更高版本
#setVideoQuality
设置视频编码质量
setVideoQuality({params}, function(ret))
推荐设置: 秀场直播mode: 1;adjustBitrate: false。
mode:
adjustBitrate:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
livePusher.setVideoQuality({
mode: 0
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setRenderRotation
设置本地摄像头预览画面的旋转方向
setRenderRotation({params}, function(ret, err))
该接口仅能够改变主播本地预览画面的方向,而不会改变观众端的画面效果。 如果希望改变观众端看到的视频画面的方向,比如原来是540x960,希望变成960x540,则可以通过设置 init() 中的 homeOrientation 来实现。
rotation:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
livePusher.setRenderRotation({
rotation: 0
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置视频镜像效果
setMirror({params}, function(ret, err))
由于前置摄像头采集的画面是取自手机的观察视角,如果将采集到的画面直接展示给观众,是完全没有问题的。 但如果将采集到的画面也直接显示给主播,则会跟主播照镜子时的体验完全相反,会让主播感觉到很奇怪。 因此,SDK 会默认开启本地摄像头预览画面的镜像效果,让主播直播时跟照镜子时保持一个体验效果。
setMirror 所影响的则是观众端看到的视频效果,如果想要保持观众端看到的效果跟主播端保持一致,需要开启镜像; 如果想要让观众端看到正常的未经处理过的画面(比如主播弹吉他的时候有类似需求),则可以关闭镜像。
isMirror:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setMirror({
isMirror: true
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setBeautyStyle
设置美颜(磨皮)算法
SDK 内部集成了两套风格不同的磨皮算法,一套我们取名叫“光滑”,适用于美女秀场,效果比较明显。 另一套我们取名“自然”,磨皮算法更多地保留了面部细节,主观感受上会更加自然。
setBeautyStyle({params}, function(ret, err))
mode:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
##代码示例
livePusher.setBeautyStyle({
mode: 0
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setBeautyLevel
设置美颜级别
setBeautyLevel({params}, function(ret, err))
level:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setBeautyLevel({
level: 1
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setWhitenessLevel
设置美白级别
setWhitenessLevel({params}, function(ret, err))
mode:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误描述' // 字符串类型, 错误信息
}
livePusher.setWhitenessLevel({
level: 1
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setRuddyLevel
设置红润级别
setRuddyLevel({params}, function(ret, err))
level:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setRuddyLevel({
level: 1
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#enableSharpnessEnhancement
设置红润级别
enableSharpnessEnhancement({params}, function(ret, err))
enable:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.enableSharpnessEnhancement({
enable: true
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setFilter
设置指定素材滤镜特效
setFilter({params}, funct ion(ret, err))
img:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setFilter({
img: '/xxx/xxx/aa.png'
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setFilterStrength
设置滤镜浓度
setFilterStrength({params}, function(ret, err))
在美女秀场等应用场景里,滤镜浓度的要求会比较高,以便更加突显主播的差异。 我们默认的滤镜浓度是0.5,如果您觉得滤镜效果不明显,可以使用下面的接口进行调节。
strength:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setFilterStrength({
strength: 0.2
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#isFrontCamera
查询当前是否为前置摄像头
isFrontCamera({params}, function(ret, err))
ret:
{
status: true, // 布尔类型, true表示操作成功
isFront: true
}
isFront:
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.isFrontCamera({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统
可提供的1.0.0及更高版本
#switchCamera
切换前后摄像头
switchCamera({params})
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.switchCamera({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#toggleTorch
打开后置摄像头旁边的闪关灯
toggleTorch({params}, function(ret, err))
此操作对于前置摄像头是无效的,因为绝大多数手机都没有给前置摄像头配置闪光灯。
enable:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.toggleTorch({
enable: true
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统
可提供的1.0.0及更高版本
#getMaxZoom
获取摄像头支持的焦距
getMaxZoom({params}, function(ret, err))
ret:
{
status: true // 布尔类型, true表示操作成功
maxZoom: 10
}
maxZoom:
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.getMaxZoom({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
Android系统
可提供的1.0.0及更高版本
#setZoom
调整摄像头的焦距
setZoom({params}, function(ret, err))
注意: 当 distance 为1的时候为最远视角(正常镜头),当为最大值的时候为最近视角(放大镜头),最大值不要超过,超过后画面会模糊不清。
distance:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
##代码示例
livePusher.setZoom({
distance: 2
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setFocusPosition
设置手动对焦区域
setFocusPosition({params}, function(ret, err))
SDK 默认使用摄像头自动对焦功能,您也可以通过 init() 中的 touchFocus 选项关闭自动对焦,改用手动对焦。 改用手动对焦之后,需要由主播自己点击摄像头预览画面上的某个区域,来手动指导摄像头对焦。
x:
y:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setFocusPosition({
x: 5,
y: 5
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setExposureCompensation
调整曝光比例
setExposureCompensation({params}, function(ret, err))
value:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '....' // 字符串类型, 错误信息
}
livePusher.setExposureCompensation({
value: 0.2
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setMute
开启静音
setMute({params}, function(ret, err))
开启静音后,SDK 并不会继续采集麦克风的声音,但是会用非常低(5kbps 左右)的码率推送伪静音数据, 这样做的目的是为了兼容 H5 上的 video 标签,并让录制出来的 MP4 文件有更好的兼容性。
isMute:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setMute({
isMute: true
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#enableVoiceEarMonitor
设置耳返
enableVoiceEarMonitor({params}, function(ret))
enable:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
##示范代码
livePusher.enableVoiceEarMonitor({
enable: true
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setVoiceReverbType
设置人声的混响效果(KTV、小房间、大会堂、低沉、洪亮...)
setVoiceReverbType({params}, function(ret, err))
注意: 设置的效果在退房后会失效,如果下次进房还需要对应特效,需要调用此接口再次设置。
mode:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setVoiceReverbType({
mode: 1
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setVoiceChangerType
停止播放背景音乐
setVoiceChangerType({params}, function(ret, err))
mode:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setVoiceChangerType({
mode: 2
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setVoiceCaptureVolume
设置麦克风采集人声的音量
setVoiceCaptureVolume({params}, function(ret))
volume:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setVoiceCaptureVolume({
volume: 80
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setMusicListener
设置音乐监听
setMusicListener({params}, function(ret, ret))
id:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setMusicListener({
id: 3
}, function(ret, err) {
if (ret) {
api.toast({
location: 'bottom',
msg: JSON.stringify(ret)
});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#removeMusicListener
移除音乐监听
removeMusicListener({params}, function(ret, err))
id:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.removeMusicListener({
id: 3
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#startPlayMusic
开始播放背景音乐
startPlayMusic({params}, function(ret))
id:
path:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.startPlayMusic({
id: 3,
path: 'http://bgm-1252xxxxxud.com/keluodiya.mp3'
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#stopPlayMusic
停止播放背景音乐
stopPlayMusic({params}, function(ret, err))
id:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.stopPlayMusic({
id: 3
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#pausePlayMusic
暂停播放背景音乐
pausePlayMusic({params}, function(ret))
id:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.pausePlayMusic({
id: 3
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#resumePlayMusic
恢复播放背景音乐
resumePlayMusic({params}, function(ret, err))
id:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.resumePlayMusic({
id: 3
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setMusicPublishVolume
设置背景音乐的远端音量大小,即主播可以通过此接口设置远端观众能听到的背景音乐的音量大小。
setMusicPublishVolume({params}, function(ret, err))
id:
volume:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
##代码示例
livePusher.setMusicPublishVolume({
id: 3,
volume: 100
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setMusicPlayoutVolume
设置背景音乐的本地音量大小,即主播可以通过此接口设置主播自己本地的背景音乐的音量大小。
setMusicPlayoutVolume({params}, function(ret, err))
id:
volume:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
##代码示例
livePusher.setMusicPlayoutVolume({
id: 3,
volume: 100
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setAllMusicVolume
设置全局背景音乐的本地和远端音量的大小
setAllMusicVolume({params}, function(ret, err))
volume:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setAllMusicVolume({
volume: 100
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setMusicPitch
调整背景音乐的音调高低
setMusicPitch({params}, function(ret, err))
id:
pitch:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setMusicPitch({
id: 3,
pitch: 0
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setMusicSpeedRate
调整背景音乐的变速效果
setMusicSpeedRate({params}, function(ret, err))
id:
speedRate:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setMusicSpeedRate({
id: 3,
speedRate: 0.5
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#getMusicCurrentPosInMS
获取背景音乐当前的播放进度(单位:毫秒)
getMusicCurrentPosInMS({params}, function(ret, err))
id:
ret:
{
status: true // 布尔类型, true表示操作成功
}
字段详情:
pos:
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.getMusicCurrentPosInMS({
id: 3
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#seekMusicToPosInMS
设置背景音乐的播放进度(单位:毫秒)
seekMusicToPosInMS({params}, function(ret, err))
id:
pts:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.seekMusicToPosInMS({
id: id,
pts: pts
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#getMusicDurationInMS
获取景音乐文件的总时长(单位:毫秒)
getMusicDurationInMS({params}, function(ret, err))
path:
ret:
{
status: true // 布尔类型, true表示操作成功
duration: 11000
}
字段详情:
duration:
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.getMusicDurationInMS({
path: 'http://bgm-xxxxxud.com/keluodiya.mp3'
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#enableVolumeEvaluation
启用麦克风采集音量大小评估
enableVolumeEvaluation({params}, function(ret, err))
开启后会在 volumeEvaluationListener 中获取到 SDK 对麦克风采集音量大小值的评估。
interval:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.enableVolumeEvaluation({
interval: 300
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setVolumeEvaluationListener
设置麦克风采集音量大小回调接口
setVolumeEvaluationListener({params}, function(ret, err))
ret:
{
status: true // 布尔类型, true表示操作成功
}
{
eventType: 'onAudioVolumeEvaluation'
volume: 10
}
eventType:
volume:
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setVolumeEvaluationListener({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#removeVolumeEvaluationListener
移除麦克风采集音量大小回调接口
removeVolumeEvaluationListener({params}, function(ret, err))
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.removeVolumeEvaluationListener({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#setRecordListener
设置录制监听
setRecordListener({params}, function(ret, err))
ret:
{
status: true // 布尔类型, true表示操作成功
}
{
eventType: 'onRecordProgress',
progress: 1000
result: {
...
}
}
eventType:
progress:
result:
{
coverImage: '/xxxx/xxx.png',
videoPath: '/xxx/xxx/xxx.mp4'
}
coverImage:
videoPath:
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.setRecordListener({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#removeRecordListener
移除录制监听
removeRecordListener({params}, function(ret, err))
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.removeRecordListener({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#startRecord
开始录制短视频
startRecord({params}, function(ret, err))
注意: 只有启动推流后才能开始录制,非推流状态下启动录制无效。 出于安装包体积的考虑,仅专业版和企业版两个版本的支持该功能,本版本仅定义了接口但并未实现。 录制过程中请勿动态切换分辨率和软硬编,会有很大概率导致生成的视频异常。
path:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
code:
livePusher.startRecord({
path: 'fs://tencentLivePusher/record/record.mp4'
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#stopRecord
结束录制短视频,当停止推流后,如果视频还在录制中,SDK 内部会自动结束录制。
stopRecord({params}, function(ret, err))
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
code:
livePusher.stopRecord({}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#snapshot
推流过程中本地截图
snapshot({params}, function(ret, err))
path:
ret:
{
status: true // 布尔类型, true表示操作成功
path: '/xxxxx/xxxx/xxx.png'
}
path:
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.snapshot({
path: 'fs://tencentLivePusher/snapshot/snapshot01.png'
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
#sendMessageEx
发送 SEI 消息,播放端(TXLivePlayer)通过 onPlayEvent(EVT_PLAY_GET_MESSAGE)来接收该消息。
本接口是将数据直接塞入视频数据头中,因此不能太大(几个字节比较合适),一般常用于塞入自定义时间戳等信息。
sendMessageEx({params}, function(ret, err))
msg:
ret:
{
status: true // 布尔类型, true表示操作成功
}
err:
{
code: -911, // 整数类型, 错误码
msg: '错误信息' // 字符串类型, 错误信息
}
livePusher.sendMessageEx({
msg: 'this is a sei msg'
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本