摄像头推流,是指采集手机摄像头的画面以及麦克风的声音,进行编码之后再推送到直播云平台上。腾讯云 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 来全屏播放视频。
关于后台播放功能
如需支持后台播放功能请参考 config.xml 配置说明文档里关于 BackgroundMode 的配置
配置实例如下:
<preference name="backgroundMode" value="audio"/>
注意:iOS端应用打包前需申请麦克风和摄像头访问权限
配置直播推流预览视图。
注意:本接口仅支持引擎2.0方式调用。引擎3.0上可直接通过 mo-txlivepusher 标签配置使用播放器。
configPreview({params})
rect:
{
x: 0, //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w:300, //(可选项)数字类型;插件宽度(相对于所属的 Window 或 Frame;默认:100%
h:600 //(可选项)数字类型;插件高度(相对于所属的 Window 或 Frame;默认:100%
}
fixedOn:
fixed:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.configPreview({
rect:{
x:,
y:,
w:,
h:
},
fixedOn:'',
fixed:false
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
重设预览区域的位置和大小
注意:本接口仅对 configPreview 打开的播放器有效
resizePreview({params})
rect:
{
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 及更高版本
隐藏预览区域的 frame
hidePreview()
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.hidePreview()
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
恢复显示预览区域的 frame
showPreview()
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.showPreview()
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置验证
setLicence({params})
licenceURL:
licenceKey:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setLicence({
licenceURL:'',
licenceKey:''
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
初始化播放器
initPusher({params})
liveMode:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.initPusher({
liveMode:'RTMP'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
关闭推流器
closePusher()
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.closePusher()
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
开启预览
startPreview(callback(ret));
ret:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.startPreview(function(ret) {
if (ret) {
api.alert({msg:JSON.stringify(ret)});
}
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
打开本地摄像头。
startVirtualCamera,startCamera,startScreenCapture,同一 Pusher 实例下,仅有一个能上行,三者为覆盖关系。例如先调用 startCamera,后调用 startVirtualCamera。此时表现为暂停摄像头推流,开启图片推流
startCamera({params},callback(ret))
frontCamera:
ret:
{
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({params},callback(ret))
mirrorType:
ret:
{
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({params},callback(ret))
mirror:
ret:
{
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({params},callback(ret))
rotation:
ret:
{
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(callback(ret))
ret:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.stopCamera(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
打开麦克风。
startMicrophone(callback(ret))
ret:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.startMicrophone(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
关闭麦克风。
stopMicrophone(callback(ret))
ret:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.stopMicrophone(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
开启图片推流。
startVirtualCamera,startCamera,startScreenCapture,同一 Pusher 实例下,仅有一个能上行,三者为覆盖关系。例如先调用 startCamera,后调用 startVirtualCamera。此时表现为暂停摄像头推流,开启图片推流
startVirtualCamera({params},callback(ret))
virtualImage:
ret:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.startVirtualCamera({
virtualImage:''
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
关闭图片推流。
stopVirtualCamera(callback(ret))
ret:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.stopVirtualCamera(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
静音本地音频。
静音本地音频后,SDK 不会继续采集麦克风的声音与 stopMicrophone 不同之处在于 pauseAudio 并不会停止发送音频数据,而是继续发送码率极低的静音包由于 MP4 等视频文件格式,对于音频的连续性是要求很高的,使用 stopMicrophone 会导致录制出的 MP4 不易播放因此在对录制质量要求很高的场景中,建议选择 pauseAudio,从而录制出兼容性更好的 MP4 文件。
pauseAudio(callback(ret))
ret:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.pauseAudio(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
取消静音本地音频。
resumeAudio(callback(ret))
ret:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.resumeAudio(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
暂停推流器的视频流。
pauseVideo(callback(ret))
ret:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.pauseVideo(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
恢复推流器的视频流。
resumeVideo(callback(ret))
ret:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.resumeVideo(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
开始音视频数据推流。url 推流的目标地址,支持任意推流服务端。
startPush({params},callback(ret))
url:
ret:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.startPush({
url:''
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
停止推送音视频数据。
stopPush(callback(ret))
ret:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.stopPush(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
是否正在推流
isPushing(callback(ret))
ret:
{
state: //数字类型;1正在推流,0已经停止推流
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.isPushing(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置推流音频质量。
setAudioQuality({params},callback(ret))
audioQuality:
ret:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setAudioQuality({
audioQuality:''
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置推流视频分辨率,以及宽高比模式(横屏 / 竖屏)。
setVideoQuality({params},callback(ret))
mode:
resolution:
ret:
{
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(callback(ret))
ret:
{
status:, //数字类型;状态码,详情参考 V2TXLiveCode
path: //字符串类型;截图路径
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.snapshot(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置推流器水印。默认情况下,水印不开启。
setWatermark({params},callback(ret))
watermark:
scale:
x:
y:
类型:数字
描述:(可选项)水印的纵坐标,取值范围为0 - 1的浮点数。
默认:0
ret:
{
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({params},callback(ret))
intervalMs:
ret:
{
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 及更高版本
发送 SEI 消息
sendSeiMessage({params})
payloadType:
data:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.sendSeiMessage({
data:'',
payloadType:''
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
显示仪表盘。
showDebugView({params})
showDebug:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.showDebugView({
showDebug:false
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置云端的混流转码参数。
setMixTranscodingConfig({params},callback(ret))
bgColor:
videoWidth:
videoHeight:
videoBitrate:
videoFramerate:
videoGOP:
bgImage:
audioBitrate:
audioChannels:
audioSampleRate:
mixStreams:
{
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:
ret:
{
status: //数字类型;状态码,详情参考 V2TXLiveCode
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setMixTranscodingConfig({
outputStreamId:''
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
添加推流事件的监听
addEventListener({params});
ret:
{
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 及更高版本
设置美颜(磨皮)算法,TRTC 内置多种不同的磨皮算法
setBeautyStyle({params})
style:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setBeautyStyle({
style:'smooth'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置美颜级别
setBeautyLevel({params})
level:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setBeautyLevel({
level:5
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置美白级别
setWhitenessLevel({params})
level:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setWhitenessLevel({
level:5
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
开启清晰度增强
enableSharpnessEnhancement({params})
enable:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.enableSharpnessEnhancement({
enable:false
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置红润级别
setRuddyLevel({params})
level:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setRuddyLevel({
level:5
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置色彩滤镜效果。 色彩滤镜,是一副包含色彩映射关系的颜色查找表图片,您可以在我们提供的官方 Demo 中找到预先准备好的几张滤镜图片。SDK 会根据该查找表中的映射关系,对摄像头采集出的原始视频画面进行二次处理,以达到预期的滤镜效果。
setFilter({params}))
virtualImage:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setFilter({
virtualImage:'dsfa'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置色彩滤镜的强度
该数值越高,色彩滤镜的作用强度越明显,经过滤镜处理后的视频画面跟原画面的颜色差异越大。 我默认的滤镜浓度是0.5,如果您觉得默认的滤镜效果不明显,可以设置为 0.5 以上的数字,最大值为1。
setFilterStrength({params})
strength:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setFilterStrength({
strength:0.5
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
开启耳返,仅在主播佩戴耳机时才能开启此特效,同时请您提示主播佩戴有线耳机。
主播开启耳返后,可以在耳机里听到麦克风采集到的自己发出的声音,该特效适用于主播唱歌的应用场景中。需要您注意的是,由于蓝牙耳机的硬件延迟非常高,所以在主播佩戴蓝牙耳机时无法开启此特效,请尽量在用户界面上提示主播佩戴有线耳机。 同时也需要注意,并非所有的手机开启此特效后都能达到优秀的耳返效果,我们已经对部分耳返效果不佳的手机屏蔽了该特效。
enableVoiceEarMonitor({params})
enable:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.enableVoiceEarMonitor({
enable:false
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置耳返音量,通过该接口您可以设置耳返特效中声音的音量大小。
setVoiceEarMonitorVolume({params})
volume:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setVoiceEarMonitorVolume({
volume:50
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置人声的混响效果,通过该接口您可以设置人声的混响效果。
setVoiceReverbType({params})
reverb:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setVoiceReverbType({
reverb:'melodious'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置人声的变声特效,通过该接口您可以设置人声的变声特效。设置的效果在退出房间后会自动失效,如果下次进房还需要对应特效,需要调用此接口再次进行设置。
setVoiceChangerType({params})
changer:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setVoiceChangerType({
changer:'disable'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置语音音量,该接口可以设置语音音量的大小,一般配合音乐音量的设置接口 setAllMusicVolume 协同使用,用于调谐语音和音乐在混音前各自的音量占比。
setVoiceVolume({params})
volume:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setVoiceVolume({
volume:50
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
开始播放背景音乐。每个音乐都需要您指定具体的 ID,您可以通过该 ID 对音乐的开始、停止、音量等进行设置。
startPlayMusic({params},callback(ret))
musicID:
path:
loopCount:
publish:
isShortFile:
startTimeMS:
endTimeMS:
ret:
{
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({params})
musicID:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.stopPlayMusic({
musicID:'first'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
暂停播放背景音乐
pausePlayMusic({params}))
musicID:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.pausePlayMusic({
musicID:'first'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
恢复播放背景音乐
resumePlayMusic({params})
musicID:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.resumePlayMusic({
musicID:'first'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置所有背景音乐的本地音量和远端音量的大小,该接口可以设置所有背景音乐的本地音量和远端音量。
setAllMusicVolume({params})
volume:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setAllMusicVolume({
volume:50
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置某一首背景音乐的远端音量的大小,该接口可以细粒度地控制每一首背景音乐的远端音量,也就是观众端可听到的背景音乐的音量大小。
setMusicPublishVolume({params})
musicID:
volume:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setMusicPublishVolume({
volume:50,
musicID:'first'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置某一首背景音乐的本地音量的大小,该接口可以细粒度地控制每一首背景音乐的本地音量,也就是主播本地可以听到的背景音乐的音量大小。
setMusicPlayoutVolume({params})
musicID:
voluem:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setMusicPlayoutVolume({
volume:50,
musicID:'first'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
调整背景音乐的音调高低
setMusicPitch({params})
musicID:
pitch:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setMusicPitch({
pitch:0,
musicID:'first'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
调整背景音乐的变速效果
setMusicSpeedRate({params})
musicID:
speedRate:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setMusicSpeedRate({
speedRate:1,
musicID:'first'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置背景音乐的播放进度(单位:毫秒),请尽量避免过度频繁地调用该接口,因为该接口可能会再次读写音乐文件,耗时稍高。
因此,当用户拖拽音乐的播放进度条时,请在用户完成拖拽操作后再调用本接口。因为 UI 上的进度条控件往往会以很高的频率反馈用户的拖拽进度,如不做频率限制,会导致较差的用户体验。
seekMusicToPosInMS({params})
musicID:
pts:
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.seekMusicToPosInMS({
musidID:'first',
pts:100
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
获取背景音乐的播放进度(单位:毫秒)
getMusicCurrentPosInMS({params},callback(ret))
musicID:
ret:
{
currentPosInMS: //数字类型;进度(单位:毫秒)
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.getMusicCurrentPosInMS({
musicID:'first'
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
获取景音乐的总时长(单位:毫秒)
getMusicDurationInMS({params},callback(ret))
path:
ret:
{
durationInMS: //数字类型;总时长(单位:毫秒)
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.getMusicDurationInMS({
path:'first'
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
判断当前是否为前置摄像头
isFrontCamera(callback(ret))
ret:
{
isFrontCamera: //布尔类型;是否为前置摄像头
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.isFrontCamera(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
切换前置或后置摄像头
switchCamera({params},callback(ret))
frontCamera:
ret:
{
state: //数字类型;状态码
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.switchCamera({
frontCamera:false
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
查询当前摄像头是否支持缩放
isCameraZoomSupported(callback(ret))
ret:
{
isCameraZoomSupported: //布尔类型;是否支持
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.isCameraZoomSupported(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
获取摄像头的最大缩放倍数
getCameraZoomMaxRatio(callback(ret))
ret:
{
maxRatio: //数字类型;最大缩放倍数
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.getCameraZoomMaxRatio(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置摄像头的缩放倍数
setCameraZoomRatio({params},callback(ret))
zoomRatio:
ret:
{
state: //数字类型;状态码
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setCameraZoomRatio({
zoomRatio:1
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
查询是否支持自动识别人脸位置
isAutoFocusEnabled(callback(ret))
ret:
{
enabled: //布尔类型;是否支持
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.isAutoFocusEnabled(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
开启自动对焦功能,开启后,SDK 会自动检测画面中的人脸位置,并将摄像头的焦点始终对焦在人脸位置上。
enableCameraAutoFocus({params},callback(ret))
enabled:
ret:
{
state: //数字类型;状态码
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.enableCameraAutoFocus({
enabled:false
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置摄像头的对焦位置,使用该接口的前提是先通过 link enableCameraAutoFocus 关闭自动对焦功能。
您可以通过该接口实现如下交互:
setCameraFocusPosition({params},callback(ret))
x:
y:
ret:
{
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(callback(ret))
ret:
{
supported: //布尔类型;是否支持
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.isCameraTorchSupported(function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统不支持
可提供的 1.0.0 及更高版本
设置音频路由,手机有两个音频播放设备:一个是位于手机顶部的听筒,一个是位于手机底部的立体声扬声器。设置音频路由为听筒时,声音比较小,只有将耳朵凑近才能听清楚,隐私性较好,适合用于接听电话。设置音频路由为扬声器时,声音比较大,不用将手机贴脸也能听清,因此可以实现“免提”的功能。
setAudioRoute({params},callback(ret))
audioRoute:
ret:
{
state: //数字类型;状态码
}
var TXLivePusher = api.require('TXLivePusher');
TXLivePusher.setAudioRoute({
audioRoute:'speakerphone'
},function(ret){
api.alert({msg:JSON.stringify(ret)});
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置系统音量类型
setSystemVolumeType({params},callback(ret))
volumeType:
ret:
{
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,