TXLivePusher
推流
美颜
音效
设备
概述
摄像头推流,是指采集手机摄像头的画面以及麦克风的声音,进行编码之后再推送到直播云平台上。腾讯云 LiteAVSDK 通过 V2TXLivePusher 接口提供摄像头推流能力。TXLivePusher 模块封装了腾讯云直播服务,详情可参考产品概述
模块配置
App 切到后台需申请后台运行权限,config.xml
配置如下
<preference name="backgroundMode" value="audio"/>
需要先从腾讯云平台获取 LicenseUrl 和 key, 参考腾讯官方申请说明。 免费申请的license(基础版,有效期14天),体验测试,有效期具体请查看。当您的测试License过期了,您需要进入 点播控制台 点击购买正式License。
关于AVM方式
本模块支持 AVM 方式打开。通过 AVM 标签方式打开的模块,在 js 代码中需要通过 document.getElementById 的形式获取该模块实例对象然后进行其它逻辑的操作。否则会产生莫名其妙的问题。
该模块同时也支持 api.require 方式调用,通过 configPreview 接口相当于 AVM 的标签打开了一个视频播放区域的 frame(view)模块,用户点击全屏按钮后,模块自动代码一个 window 来全屏播放视频。
模块接口
configPreview
配置直播推流预览视图。
注意:本接口仅支持引擎2.0方式调用。引擎3.0上可直接通过 mo-txlivepusher 标签配置使用播放器。
configPreview({params})
params
rect:
- 类型:JSON 类型
- 描述:(可选项)推流预览区域的位置及大小
- 内部字段:
{
x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w:300, //(可选项)数字类型;模块宽度(相对于所属的 Window 或 Frame;默认:100%
h:600 //(可选项)数字类型;模块高度(相对于所属的 Window 或 Frame;默认:100%
}
fixedOn:
- 类型:字符串类型
- 描述:(可选项)模块添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:预览窗口依附于当前 window
fixed:
- 类型:布尔
- 描述:(可选项)预览窗口是否随所属 window 或 frame 滚动
- 默认值:true(不随之滚动)
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.configPreview({
rect:{
x:,
y:,
w:,
h:
},
fixedOn:'',
fixed:false
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
resizePreview
重设预览区域的位置和大小
注意:本接口仅对 configPreview 打开的播放器有效
resizePreview({params})
params
rect:
- 类型:JSON 类型
- 描述:(可选项)预览窗口的位置及大小
- 内部字段:
{
x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:原x坐标
y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:原y坐标
w:300, //(可选项)数字类型;模块宽度(相对于所属的 Window 或 Frame;默认:原宽度
h:600 //(可选项)数字类型;模块高度(相对于所属的 Window 或 Frame;默认:原高度
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.resizePreview({
rect:{
x:,
y:,
w:,
h:
}
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
hidePreview
隐藏预览区域的 frame
hidePreview()
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.hidePreview()
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
showPreview
恢复显示预览区域的 frame
showPreview()
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.showPreview()
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setLicence
设置验证
setLicence({params})
params
licenceURL:
- 类型:字符串
- 描述:腾讯直播平台申请的 url
licenceKey:
- 类型:字符串
- 描述:腾讯直播平台申请的 key
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setLicence({
licenceURL:'',
licenceKey:''
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
initPusher
初始化播放器
initPusher({params})
params
liveMode:
- 类型:字符串
- 描述:(可选项)直播模式,详情参考腾讯云论坛
- 默认:RTMP
- 取值范围:
- RTMP:
- RTC:
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.initPusher({
liveMode:'RTMP'
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
closePusher
关闭推流器
closePusher()
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.closePusher()
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
startPreview
开启预览
startPreview(callback(ret));
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.startPreview(function(ret) {
if (ret) {
api.alert({msg:JSON.stringify(ret)});
}
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
startCamera
打开本地摄像头。
startVirtualCamera,startCamera,startScreenCapture,同一 Pusher 实例下,仅有一个能上行,三者为覆盖关系。例如先调用 startCamera,后调用 startVirtualCamera。此时表现为暂停摄像头推流,开启图片推流
startCamera({params},callback(ret))
params
frontCamera:
- 类型:布尔
- 描述:(可选项)是否为前置摄像头
- 默认:true
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.startCamera({
frontCamera:true
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setRenderMirror
设置本地摄像头预览镜像。
本地摄像头分为前置摄像头和后置摄像头,系统默认情况下,是前置摄像头镜像,后置摄像头不镜像,这里可以修改前置后置摄像头的默认镜像类型。
setRenderMirror({params},callback(ret))
params
mirrorType:
- 类型:字符串
- 描述:(可选项)镜像类型
- 默认:auto
- 取值范围:
- auto:系统默认镜像类型,前置摄像头镜像,后置摄像头不镜像
- enable:前置摄像头和后置摄像头,都切换为镜像模式
- disable:前置摄像头和后置摄像头,都切换为非镜像模式
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setRenderMirror({
mirrorType:'auto'
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setEncoderMirror
设置视频编码镜像。编码镜像只影响观众端看到的视频效果。
setEncoderMirror({params},callback(ret))
params
mirror:
- 类型:布尔
- 描述:(可选项)是否镜像
- 默认:false
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setEncoderMirror({
mirror:false
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setRenderRotation
设置本地摄像头预览画面的旋转角度。只旋转本地预览画面,不影响推流出去的画面。
setRenderRotation({params},callback(ret))
params
rotation:
- 类型:字符串
- 描述:(可选项)旋转角度
- 默认:0
- 取值范围:
- 0:不旋转
- 90:顺时针旋转90度
- 180:顺时针旋转180度
- 270:顺时针旋转270度
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setRenderRotation({
rotation:90
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
stopCamera
关闭本地摄像头。
stopCamera(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.stopCamera(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
startMicrophone
打开麦克风。
startMicrophone(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.startMicrophone(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
stopMicrophone
关闭麦克风。
stopMicrophone(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.stopMicrophone(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
startVirtualCamera
开启图片推流。
startVirtualCamera,startCamera,startScreenCapture,同一 Pusher 实例下,仅有一个能上行,三者为覆盖关系。例如先调用 startCamera,后调用 startVirtualCamera。此时表现为暂停摄像头推流,开启图片推流
startVirtualCamera({params},callback(ret))
params
virtualImage:
- 类型:字符串
- 描述:图片路径,要求本地路径(fs://、widget://)
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.startVirtualCamera({
virtualImage:''
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
stopVirtualCamera
关闭图片推流。
stopVirtualCamera(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.stopVirtualCamera(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
pauseAudio
静音本地音频。
静音本地音频后,SDK 不会继续采集麦克风的声音与 stopMicrophone 不同之处在于 pauseAudio 并不会停止发送音频数据,而是继续发送码率极低的静音包由于 MP4 等视频文件格式,对于音频的连续性是要求很高的,使用 stopMicrophone 会导致录制出的 MP4 不易播放因此在对录制质量要求很高的场景中,建议选择 pauseAudio,从而录制出兼容性更好的 MP4 文件。
pauseAudio(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.pauseAudio(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
resumeAudio
取消静音本地音频。
resumeAudio(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.resumeAudio(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
pauseVideo
暂停推流器的视频流。
pauseVideo(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.pauseVideo(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
resumeVideo
恢复推流器的视频流。
resumeVideo(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.resumeVideo(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
startPush
开始音视频数据推流。url 推流的目标地址,支持任意推流服务端。
startPush({params},callback(ret))
params
url:
- 类型:字符串
- 描述:推流的目标地址
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.startPush({
url:''
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
stopPush
停止推送音视频数据。
stopPush(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.stopPush(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
isPushing
是否正在推流
isPushing(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
state: //数字类型;1正在推流,0已经停止推流
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.isPushing(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setAudioQuality
设置推流音频质量。
setAudioQuality({params},callback(ret))
params
audioQuality:
- 类型:字符串
- 描述:(可选项)音频质量
- 默认:default
- default: 通用
- speech:语音
- music:音乐
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setAudioQuality({
audioQuality:''
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setVideoQuality
设置推流视频分辨率,以及宽高比模式(横屏 / 竖屏)。
setVideoQuality({params},callback(ret))
params
mode:
- 类型:字符串
- 描述:(可选项)视频宽高比模式(横屏或者竖屏模式)
- 默认:portrait
- landscape: 横屏模式
- portrait:竖屏模式
resolution:
- 类型:字符串
- 描述:(可选项)视频分辨率
- 默认:default
- 270x270:
- 480x480:
- 320x240:
- 480x360:
- 640x480:
- 320x180:
- 480x270:
- 640x360:
- 960x540:
- 1280x720:
- 1920x1080:
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setVideoQuality({
resolution:'',
mode:'portrait'
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
snapshot
获取截图
snapshot(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 描述:返回值
{
status:, //数字类型;状态码,详情参考 V2TXLiveCode
path: //字符串类型;截图路径
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.snapshot(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setWatermark
设置推流器水印。默认情况下,水印不开启。
setWatermark({params},callback(ret))
params
watermark:
- 类型:字符串
- 描述:(可选项)水印图片地址,要求本地路径(fs://、widget://)
- 默认:不传表示禁用水印
scale:
- 类型:数字
- 描述:(可选项)水印图片的缩放比例,取值范围为0 - 1的浮点数。
- 默认:0
x:
- 类型:数字
- 描述:(可选项)水印的横坐标,取值范围为0 - 1的浮点数。
- 默认:0
y:
类型:数字
描述:(可选项)水印的纵坐标,取值范围为0 - 1的浮点数。
默认:0
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setWatermark({
watermark:'',
x:,
y:,
scale:0.5
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
注意:(x, y, scale) 参数设置的是水印图片相对于推流分辨率的归一化坐标。假设推流分辨率为:540 × 960,该字段设置为:(0.1,0.1,0.1),则水印的实际像素坐标为:(540 × 0.1,960 × 0.1,水印宽度 × 0.1,水印高度会被自动计算)。
enableVolumeEvaluation
启用采集音量大小提示。
enableVolumeEvaluation({params},callback(ret))
params
intervalMs:
- 类型:数字
- 描述:(可选项)决定了音量大小回调的触发间隔,单位为 ms,最小间隔为 100ms,如果小于等于0则会关闭回调,建议设置为 300ms。
- 默认:300
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,仅首次回调有值,详情参考 V2TXLiveCode
volume: //数字类型;音量大小
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.enableVolumeEvaluation({
intervalMs:500
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
sendSeiMessage
发送 SEI 消息
sendSeiMessage({params})
params
payloadType:
- 类型:数字
- 描述:(可选项)数据类型,支持 5、242。推荐填:242
- 默认:242
data:
- 类型:字符串
- 描述:待发送的数据
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.sendSeiMessage({
data:'',
payloadType:''
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
showDebugView
显示仪表盘。
showDebugView({params})
params
showDebug:
- 类型:数字
- 描述:(可选项)是否显示
- 默认:false
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.showDebugView({
showDebug:false
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setMixTranscodingConfig
设置云端的混流转码参数。
setMixTranscodingConfig({params},callback(ret))
params
bgColor:
- 类型:字符串
- 描述:(可选项)背景色,只支持#,如:#000000
- 默认:#000000
videoWidth:
- 类型:数字
- 描述:(可选项)最终转码后的视频分辨率的宽度。如果你是纯音频推流,请将 width × height 设为 0px × 0px,否则混流后会携带一条画布背景的视频流
- 默认:360
videoHeight:
- 类型:数字
- 描述:(可选项)最终转码后的视频分辨率的高度,如果你是纯音频推流,请将 width × height 设为 0px × 0px,否则混流后会携带一条画布背景的视频流
- 默认:640
videoBitrate:
- 类型:数字
- 描述:(可选项)最终转码后的视频分辨率的码率(kbps),如果填0,后台会根据 videoWidth 和 videoHeight 来估算码率
- 默认:0
videoFramerate:
- 类型:数字
- 描述:(可选项)最终转码后的视频分辨率的帧率(FPS),取值范围是 (0,30]
- 默认:15
videoGOP:
- 类型:数字
- 描述:(可选项)最终转码后的视频分辨率的关键帧间隔(又称为 GOP),单位为秒,取值范围是 [1,8]
- 默认:2
bgImage:
- 类型:字符串
- 描述:(可选项)混合后画面的背景图
- 默认:空,即不设置背景图
audioBitrate:
- 类型:数字
- 描述:(可选项)终转码后的音频码率,取值范围是 [32,192],单位:kbps
- 默认:64
audioChannels:
- 类型:数字
- 描述:(可选项)终转码后的音频声道数,取值范围为 [1,2] 中的整型
- 默认:1
audioSampleRate:
- 类型:数字
- 描述:(可选项)最终转码后的音频采样率,支持12000HZ、16000HZ、22050HZ、24000HZ、32000HZ、44100HZ、48000HZ
- 默认:48000
mixStreams:
- 类型:数组
- 描述:(可选项)每一路子画面的位置信息
- 默认:48000
- 内部字段:
{
userId:'', //字符串类型;参与混流的 userId
streamId:'', //字符串类型;参与混流的 userId 所在对应的推流 streamId,不传表示当前推流 streamId
x:, //(可选项)数字类型;图层位置 x 坐标(绝对像素值);默认:0
y:, //(可选项)数字类型;图层位置 y 坐标(绝对像素值);默认:0
width:, //(可选项)数字类型;图层位置宽度(绝对像素值);默认:100
height:, //(可选项)数字类型;图层位置高度(绝对像素值);默认:100
zOrder:, //(可选项)数字类型;图层层次(1 - 15)不可重复;默认:1
inputType: //(可选项)字符串类型;该直播流的输入类型,audioVideo、video、audio;默认:audioVideo
}
outputStreamId:
- 类型:字符串
- 描述:(可选项)输出到 CDN 上的直播流 ID,如不设置该参数,SDK 会执行默认逻辑,即房间里的多路流会混合到该接口调用者的视频流上,也就是 A + B => A;如果设置该参数,SDK 会将房间里的多路流混合到您指定的直播流 ID 上,也就是 A + B => C。
- 默认:空,即房间里的多路流会混合到该接口调用者的视频流上。
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setMixTranscodingConfig({
outputStreamId:''
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
addEventListener
添加推流事件的监听
addEventListener({params});
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
eventType:'' //字符串类型;交互事件类型;
//onError:直播推流器错误通知,推流器出现错误时,会回调该通知
//onWarning:直播推流器警告通知
//onCaptureFirstAudioFrame:首帧音频采集完成的回调通知
//onCaptureFirstVideoFrame:首帧视频采集完成的回调通知
//onPushStatusUpdate:推流器连接状态回调通知
//onStatisticsUpdate:直播推流器统计数据回调
//onSetMixTranscodingConfig:设置云端的混流转码参数的回调
code:, //数字类型;状态码,详情参考 V2TXLiveCode
msg: //字符串类型;错误信息
statistics:{ //JSON对象;
appCpu:, //数字类型;当前 App 的 CPU 使用率(%)
systemCpu:, //数字类型;当前系统的 CPU 使用率(%)
width:, //数字类型;视频宽度
height: //数字类型;视频高度
fps: //数字类型;帧率(fps)
videoBitrate: //数字类型;视频码率(Kbps)
audioBitrate: //数字类型;音频码率(Kbps)
}
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.addEventListener(function(ret) {
if (ret) {
api.alert({msg:JSON.stringify(ret)});
}
});
可用性
iOS 系统 ,Android 系统
可提供的 1.0.0 及更高版本
setBeautyStyle
设置美颜(磨皮)算法,TRTC 内置多种不同的磨皮算法
setBeautyStyle({params})
params
style:
- 类型:字符串
- 描述:(可选项)美颜类型
- 默认:smooth
- 取值范围:
- smooth:光滑,算法比较激进,磨皮效果比较明显,适用于秀场直播。
- nature:自然,算法更多地保留了面部细节,磨皮效果更加自然,适用于绝大多数直播场景。
- pitu:优图,由优图实验室提供,磨皮效果介于光滑和自然之间,比光滑保留更多皮肤细节,比自然磨皮程度更高。
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setBeautyStyle({
style:'smooth'
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setBeautyLevel
设置美颜级别
setBeautyLevel({params})
params
level:
- 类型:数字
- 描述:(可选项)美颜级别,取值范围0 - 9,0表示关闭,9表示效果最明显。
- 默认:0
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setBeautyLevel({
level:5
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setWhitenessLevel
设置美白级别
setWhitenessLevel({params})
params
level:
- 类型:数字
- 描述:(可选项)美白级别,取值范围0 - 9,0表示关闭,9表示效果最明显。
- 默认:0
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setWhitenessLevel({
level:5
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
enableSharpnessEnhancement
开启清晰度增强
enableSharpnessEnhancement({params})
params
enable:
- 类型:布尔
- 描述:(可选项)是否开启
- 默认:true
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.enableSharpnessEnhancement({
enable:false
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setRuddyLevel
设置红润级别
setRuddyLevel({params})
params
level:
- 类型:数字
- 描述:(可选项)红润级别,取值范围0 - 9,0表示关闭,9表示效果最明显。
- 默认:0
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setRuddyLevel({
level:5
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setFilter
设置色彩滤镜效果。 色彩滤镜,是一副包含色彩映射关系的颜色查找表图片,您可以在我们提供的官方 Demo 中找到预先准备好的几张滤镜图片。SDK 会根据该查找表中的映射关系,对摄像头采集出的原始视频画面进行二次处理,以达到预期的滤镜效果。
setFilter({params}))
params
virtualImage:
- 类型:字符串
- 描述:包含色彩映射关系的颜色查找表图片路径,必须是 png 格式。
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setFilter({
virtualImage:'dsfa'
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setFilterStrength
设置色彩滤镜的强度
该数值越高,色彩滤镜的作用强度越明显,经过滤镜处理后的视频画面跟原画面的颜色差异越大。 我默认的滤镜浓度是0.5,如果您觉得默认的滤镜效果不明显,可以设置为 0.5 以上的数字,最大值为1。
setFilterStrength({params})
params
strength:
- 类型:数字
- 描述:从0到1,数值越大滤镜效果越明显,
- 默认:0.5
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setFilterStrength({
strength:0.5
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
enableVoiceEarMonitor
开启耳返,仅在主播佩戴耳机时才能开启此特效,同时请您提示主播佩戴有线耳机。
主播开启耳返后,可以在耳机里听到麦克风采集到的自己发出的声音,该特效适用于主播唱歌的应用场景中。需要您注意的是,由于蓝牙耳机的硬件延迟非常高,所以在主播佩戴蓝牙耳机时无法开启此特效,请尽量在用户界面上提示主播佩戴有线耳机。 同时也需要注意,并非所有的手机开启此特效后都能达到优秀的耳返效果,我们已经对部分耳返效果不佳的手机屏蔽了该特效。
enableVoiceEarMonitor({params})
params
enable:
- 类型:布尔
- 描述:(可选项)是否开启
- 默认:true
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.enableVoiceEarMonitor({
enable:false
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setVoiceEarMonitorVolume
设置耳返音量,通过该接口您可以设置耳返特效中声音的音量大小。
setVoiceEarMonitorVolume({params})
params
volume:
- 类型:数字
- 描述:(可选项)音量大小,取值范围为0 - 100
- 默认:100
- 注意:如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setVoiceEarMonitorVolume({
volume:50
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setVoiceReverbType
设置人声的混响效果,通过该接口您可以设置人声的混响效果。
setVoiceReverbType({params})
params
reverb:
- 类型:字符串
- 描述:(可选项)混响效果
- 默认:disable
- 取值范围:
- disable:
- KTV:
- smallRoom:
- greatHall:
- deepVoice:
- loudVoice:
- metallicSound:
- magneticSound:
- ethereal:
- studio:
- melodious:
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setVoiceReverbType({
reverb:'melodious'
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setVoiceChangerType
设置人声的变声特效,通过该接口您可以设置人声的变声特效。设置的效果在退出房间后会自动失效,如果下次进房还需要对应特效,需要调用此接口再次进行设置。
setVoiceChangerType({params})
params
changer:
- 类型:字符串
- 描述:(可选项)混响效果
- 默认:disable
- 取值范围:
- disable:
- naughtyKid:
- lolita:
- uncle:
- heavyMetal:
- catchCold:
- foreignAccent:
- beast:
- indoorsman:
- strongCurrent:
- heavyMachinery:
- intangible:
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setVoiceChangerType({
changer:'disable'
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setVoiceVolume
设置语音音量,该接口可以设置语音音量的大小,一般配合音乐音量的设置接口 setAllMusicVolume 协同使用,用于调谐语音和音乐在混音前各自的音量占比。
setVoiceVolume({params})
params
volume:
- 类型:数字
- 描述:(可选项)音量大小,取值范围为0 - 100
- 默认:100
- 注意:如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setVoiceVolume({
volume:50
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
startPlayMusic
开始播放背景音乐。每个音乐都需要您指定具体的 ID,您可以通过该 ID 对音乐的开始、停止、音量等进行设置。
- 如果要多次播放同一首背景音乐,请不要每次播放都分配一个新的 ID,我们推荐使用相同的 ID。
- 若您希望同时播放多首不同的音乐,请为不同的音乐分配不同的 ID 进行播放。
- 如果使用同一个 ID 播放不同音乐,SDK 会先停止播放旧的音乐,再播放新的音乐。
startPlayMusic({params},callback(ret))
params
musicID:
- 类型:字符串
- 描述:音乐 ID
- 注意:Android端只能是一串数字
path:
- 类型:字符串
- 描述:(音效文件的完整路径或 URL 地址。支持的音频格式包括 MP3、AAC、M4A、WAV)
- 注意:Android目前只支持本地完整音效文件路径或者网络路径如:http://dldir1.qq.com/hudongzhibo/LiteAV/demomusic/testmusic1.mp3
loopCount:
- 类型:数字
- 描述:(可选项)音乐循环播放的次数,取值范围为0 - 任意正整数,0表示播放音乐一次;1表示播放音乐两次;以此类推
- 默认:0
publish:
- 类型:布尔
- 描述:(可选项)是否将音乐传到远端
- 默认:false
isShortFile:
- 类型:布尔
- 描述:(可选项)播放的是否为短音乐文件,true:需要重复播放的短音乐文件;false:正常的音乐文件。
- 默认:false
startTimeMS:
- 类型:数字
- 描述:(可选项)音乐开始播放时间点,单位:毫秒。
- 默认:0
endTimeMS:
- 类型:数字
- 描述:(可选项)音乐结束播放时间点,单位毫秒,0表示播放至文件结尾。
- 默认:0
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
eventType: //字符串类型;交互事件类型;
//onStart:开始播放
//onProgress:正在播放
//onComplete:播放结束
progressMs:, //数字类型;当前进度,仅当 eventType 为 onProgress 时有值
durationMs: //数字类型;总时长,仅当 eventType 为 onProgress 时有值
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.startPlayMusic({
musicID:'first',
path:'fs://adfa.mp3'
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
stopPlayMusic
停止播放背景音乐
stopPlayMusic({params})
params
musicID:
- 类型:字符串
- 描述:音乐 ID
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.stopPlayMusic({
musicID:'first'
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
pausePlayMusic
暂停播放背景音乐
pausePlayMusic({params}))
params
musicID:
- 类型:字符串
- 描述:音乐 ID
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.pausePlayMusic({
musicID:'first'
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
resumePlayMusic
恢复播放背景音乐
resumePlayMusic({params})
params
musicID:
- 类型:字符串
- 描述:音乐 ID
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.resumePlayMusic({
musicID:'first'
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setAllMusicVolume
设置所有背景音乐的本地音量和远端音量的大小,该接口可以设置所有背景音乐的本地音量和远端音量。
setAllMusicVolume({params})
params
volume:
- 类型:数字
- 描述:音量大小,取值范围为0 - 100,如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。
- 默认:100
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setAllMusicVolume({
volume:50
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setMusicPublishVolume
设置某一首背景音乐的远端音量的大小,该接口可以细粒度地控制每一首背景音乐的远端音量,也就是观众端可听到的背景音乐的音量大小。
setMusicPublishVolume({params})
params
musicID:
- 类型:字符串
- 描述:音乐 ID
volume:
- 类型:数字
- 描述:音量大小,取值范围为0 - 100,如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。
- 默认:100
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setMusicPublishVolume({
volume:50,
musicID:'first'
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setMusicPlayoutVolume
设置某一首背景音乐的本地音量的大小,该接口可以细粒度地控制每一首背景音乐的本地音量,也就是主播本地可以听到的背景音乐的音量大小。
setMusicPlayoutVolume({params})
params
musicID:
- 类型:字符串
- 描述:音乐 ID
voluem:
- 类型:数字
- 描述:音量大小,取值范围为0 - 100,如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。
- 默认:100
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setMusicPlayoutVolume({
volume:50,
musicID:'first'
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setMusicPitch
调整背景音乐的音调高低
setMusicPitch({params})
params
musicID:
- 类型:字符串
- 描述:音乐 ID
pitch:
- 类型:数字
- 描述:音调,范围是:[-1 ~ 1] 之间的浮点数。
- 默认:0
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setMusicPitch({
pitch:0,
musicID:'first'
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setMusicSpeedRate
调整背景音乐的变速效果
setMusicSpeedRate({params})
params
musicID:
- 类型:字符串
- 描述:音乐 ID
speedRate:
- 类型:数字
- 描述:速度,范围是:[0.5 ~ 2] 之间的浮点数
- 默认:1
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setMusicSpeedRate({
speedRate:1,
musicID:'first'
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
seekMusicToPosInMS
设置背景音乐的播放进度(单位:毫秒),请尽量避免过度频繁地调用该接口,因为该接口可能会再次读写音乐文件,耗时稍高。
因此,当用户拖拽音乐的播放进度条时,请在用户完成拖拽操作后再调用本接口。因为 UI 上的进度条控件往往会以很高的频率反馈用户的拖拽进度,如不做频率限制,会导致较差的用户体验。
seekMusicToPosInMS({params})
params
musicID:
- 类型:字符串
- 描述:音乐 ID
pts:
- 类型:数字
- 描述:单位: 毫秒
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.seekMusicToPosInMS({
musidID:'first',
pts:100
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
getMusicCurrentPosInMS
获取背景音乐的播放进度(单位:毫秒)
getMusicCurrentPosInMS({params},callback(ret))
params
musicID:
- 类型:字符串
- 描述:音乐 ID
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
currentPosInMS: //数字类型;进度(单位:毫秒)
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.getMusicCurrentPosInMS({
musicID:'first'
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
getMusicDurationInMS
获取景音乐的总时长(单位:毫秒)
getMusicDurationInMS({params},callback(ret))
params
path:
- 类型:字符串
- 描述:(可选项)音乐文件路径,如果 path 为空,那么返回当前正在播放的 music 时长。
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
durationInMS: //数字类型;总时长(单位:毫秒)
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.getMusicDurationInMS({
path:'first'
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
isFrontCamera
判断当前是否为前置摄像头
isFrontCamera(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
isFrontCamera: //布尔类型;是否为前置摄像头
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.isFrontCamera(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
switchCamera
切换前置或后置摄像头
switchCamera({params},callback(ret))
params
frontCamera:
- 类型:布尔
- 描述:(可选项)是否为前置摄像头
- 默认:false
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
state: //数字类型;状态码
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.switchCamera({
frontCamera:false
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
isCameraZoomSupported
查询当前摄像头是否支持缩放
isCameraZoomSupported(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
isCameraZoomSupported: //布尔类型;是否支持
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.isCameraZoomSupported(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
getCameraZoomMaxRatio
获取摄像头的最大缩放倍数
getCameraZoomMaxRatio(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
maxRatio: //数字类型;最大缩放倍数
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.getCameraZoomMaxRatio(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setCameraZoomRatio
设置摄像头的缩放倍数
setCameraZoomRatio({params},callback(ret))
params
zoomRatio:
- 类型:数字
- 描述:(可选项)取值范围1 - 5,取值为1表示最远视角(正常镜头),取值为5表示最近视角(放大镜头)。
- 默认:1
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
state: //数字类型;状态码
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setCameraZoomRatio({
zoomRatio:1
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
isAutoFocusEnabled
查询是否支持自动识别人脸位置
isAutoFocusEnabled(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
enabled: //布尔类型;是否支持
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.isAutoFocusEnabled(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
enableCameraAutoFocus
开启自动对焦功能,开启后,SDK 会自动检测画面中的人脸位置,并将摄像头的焦点始终对焦在人脸位置上。
enableCameraAutoFocus({params},callback(ret))
params
enabled:
- 类型:布尔
- 描述:(可选项)是否开启
- 默认:false
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
state: //数字类型;状态码
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.enableCameraAutoFocus({
enabled:false
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setCameraFocusPosition
设置摄像头的对焦位置,使用该接口的前提是先通过 link enableCameraAutoFocus 关闭自动对焦功能。
您可以通过该接口实现如下交互:
- 在本地摄像头的预览画面上,允许用户单击操作。
- 在用户的单击位置显示一个矩形方框,以示摄像头会在此处对焦。
- 随后将用户点击位置的坐标通过本接口传递给 SDK,之后 SDK 会操控摄像头按照用户期望的位置进行对焦。
setCameraFocusPosition({params},callback(ret))
params
x:
- 类型:数字
- 描述:(可选项)焦点坐标
- 默认:100
y:
- 类型:数字
- 描述:(可选项)焦点坐标
- 默认:100
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
state: //数字类型;状态码
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setCameraFocusPosition({
x:1,
y:2
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
isCameraTorchSupported
查询是否支持开启闪光灯
isCameraTorchSupported(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
supported: //布尔类型;是否支持
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.isCameraTorchSupported(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统不支持
可提供的 1.0.0 及更高版本
setAudioRoute
设置音频路由,手机有两个音频播放设备:一个是位于手机顶部的听筒,一个是位于手机底部的立体声扬声器。设置音频路由为听筒时,声音比较小,只有将耳朵凑近才能听清楚,隐私性较好,适合用于接听电话。设置音频路由为扬声器时,声音比较大,不用将手机贴脸也能听清,因此可以实现“免提”的功能。
setAudioRoute({params},callback(ret))
params
audioRoute:
- 类型:字符串
- 描述:(可选项)扬声器还是听筒。
- 默认:speakerphone
- speakerphone:使用扬声器播放(即“免提”),扬声器位于手机底部,声音偏大,适合外放音乐。
- earpiece:使用听筒播放,听筒位于手机顶部,声音偏小,适合需要保护隐私的通话场景。
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
state: //数字类型;状态码
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setAudioRoute({
audioRoute:'speakerphone'
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
setSystemVolumeType
设置系统音量类型
setSystemVolumeType({params},callback(ret))
params
volumeType:
- 类型:字符串
- 描述:(可选项)扬声器还是听筒。
- 默认:auto
- auto:自动切换模式:也被称为“麦上通话,麦下媒体”,即主播上麦时使用通话音量,观众不上麦则使用媒体音量,适合在线直播场景。
- media:全程媒体音量:通话全程使用媒体音量,并不是非常常用的音量类型,适用于对音质要求比较苛刻的音乐场景中。如果您的用户大都使用外接设备(比如外接声卡)为主,可以使用该模式,否则请慎用。
- VOIP:全程通话音量:该方案的优势在于用户在上下麦时音频模块无需切换工作模式,可以做到无缝上下麦,适合于用户需要频繁上下麦的应用场景。
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
state: //数字类型;状态码
}
示例代码
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setSystemVolumeType({
volumeType:'auto'
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
直播错误码
/// 没有错误
V2TXLIVE_OK = 0,
/// 暂未归类的通用错误
V2TXLIVE_ERROR_FAILED = -1,
/// 调用 API 时,传入的参数不合法
V2TXLIVE_ERROR_INVALID_PARAMETER = -2,
/// API 调用被拒绝
V2TXLIVE_ERROR_REFUSED = -3,
/// 当前 API 不支持调用
V2TXLIVE_ERROR_NOT_SUPPORTED = -4,
/// license 不合法,调用失败
V2TXLIVE_ERROR_INVALID_LICENSE = -5,
/// 请求服务器超时
V2TXLIVE_ERROR_REQUEST_TIMEOUT = -6,
/// 服务器无法处理您的请求
V2TXLIVE_ERROR_SERVER_PROCESS_FAILED = -7,
/////////////////////////////////////////////////////////////////////////////////
//
// 网络相关的警告码
//
/////////////////////////////////////////////////////////////////////////////////
/// 网络状况不佳:上行带宽太小,上传数据受阻
V2TXLIVE_WARNING_NETWORK_BUSY = 1101,
/// 当前视频播放出现卡顿
V2TXLIVE_WARNING_VIDEO_BLOCK = 2105,
/////////////////////////////////////////////////////////////////////////////////
//
// 摄像头相关的警告码
//
/////////////////////////////////////////////////////////////////////////////////
/// 摄像头打开失败
V2TXLIVE_WARNING_CAMERA_START_FAILED = -1301,
/// 摄像头正在被占用中,可尝试打开其他摄像头
V2TXLIVE_WARNING_CAMERA_OCCUPIED = -1316,
/// 摄像头设备未授权,通常在移动设备出现,可能是权限被用户拒绝了
V2TXLIVE_WARNING_CAMERA_NO_PERMISSION = -1314,
/////////////////////////////////////////////////////////////////////////////////
//
// 麦克风相关的警告码
//
/////////////////////////////////////////////////////////////////////////////////
/// 麦克风打开失败
V2TXLIVE_WARNING_MICROPHONE_START_FAILED = -1302,
/// 麦克风正在被占用中,例如移动设备正在通话时,打开麦克风会失败
V2TXLIVE_WARNING_MICROPHONE_OCCUPIED = -1319,
/// 麦克风设备未授权,通常在移动设备出现,可能是权限被用户拒绝了
V2TXLIVE_WARNING_MICROPHONE_NO_PERMISSION = -1317,
/////////////////////////////////////////////////////////////////////////////////
//
// 屏幕分享相关警告码
//
/////////////////////////////////////////////////////////////////////////////////
/// 当前系统不支持屏幕分享
V2TXLIVE_WARNING_SCREEN_CAPTURE_NOT_SUPPORTED = -1309,
/// 开始录屏失败,如果在移动设备出现,可能是权限被用户拒绝了
V2TXLIVE_WARNING_SCREEN_CAPTURE_START_FAILED = -1308,
/// 录屏被系统中断
V2TXLIVE_WARNING_SCREEN_CAPTURE_INTERRUPTED = -7001,