简述
插件封装了腾讯的点播视频播放器。支持播放任意服务器端视频,以及本地视频。本插件还封装了离线下载及缓冲功能,可以让用户在有 Wi-Fi 环境时下载视频,一遍没有 Wi-Fi 时无流量播放。通过打开多个插件配合 setAutoPlay 接口可实现预加载功能。本插件亦支持视频加密播放。
特别说明
本腾讯视频播放器 SDK 不会对播放地址的来源做限制,即您可以用它来播放腾讯云或非腾讯云的播放地址。但播放器只支持 MP4、HLS(m3u8)和 FLV 三种格式的点播地址。
关于缓存
在短视频播放场景中,视频文件的本地缓存是很刚需的一个特性,对于普通用户而言,一个已经看过的视频再次观看时,不应该再消耗一次流量。
SDK 支持 HLS(m3u8)和 MP4 两种常见点播格式的缓存功能。
SDK 并不默认开启缓存功能,对于用户回看率不高的场景,也并不推荐您开启此功能。
开启此功能需要通过 setConfig 接口配置两个参数:本地缓存目录及需要缓存的视频个数。
预加载
在短视频播放场景中,预加载功能对于流畅的观看体验很有帮助:在观看当前视频的同时,在后台加载即将要播放的下一个视频 URL,这样一来,当用户真正切换到下一个视频时,已经不需要从头开始加载了,而是可以做到立刻播放。
这就是视频播放中无缝切换的背后技术支撑,您可以使用 setAutoPlay 开关来实现这个功能,具体做法如下:
1,打开插件 A,设置 setAutoPlay 为 true,startPlay接口后会立刻播放视频
2,打开插件 A 播放视频的同时打开插件 B,并设置 setAutoPlay 为 false。
3,等 A 视频播放结束,插件 B 调用 resume 接口即可实现立刻播放。
关于加密播放
视频加密方案主要用于在线教育等需要对视频版权进行保护的场景。如果要对您的视频资源进行加密保护,就不仅仅需要在播放器上做改造,还需要对视频源本身进行加密转码,亦需要您的后台和终端研发工程师都参与其中。在 视频 加密解决方案 中您会了解到全部细节内容。
目前 TCLitePlayer 也是支持加密播放的,您可以使用通过 URL 携带身份认证信息的方案,该种方案下插件的调用方式跟普通情况没有什么区别。 您也可以使用 Cookie 携带身份认证信息的方案,该种方案下,需要您通过 setConfig 中的 headers 字段设置 cookie 信息于 HTTP 请求头中。
关于AVM方式
本插件支持 AVM 方式打开。通过 AVM 标签方式打开的插件,在 js 代码中需要通过 document.getElementById 的形式获取该插件实例对象然后进行其它逻辑的操作。否则会产生莫名其妙的问题。
该插件同时也支持 api.require 方式调用,通过 configView 接口相当于 AVM 的标签打开了一个视频播放区域的 frame(view)插件,用户点击全屏按钮后,插件自动代码一个 window 来全屏播放视频。
关于后台播放功能
如需支持后台播放功能请参考 config.xml 配置说明文档里关于 BackgroundMode 的配置
配置实例如下:
<preference name="backgroundMode" value="audio"/>
注意:iOS端1.0.2版(原生SDK 10.1版本)本开始增加授权校验,详情参考腾讯文档
设置验证
setLicence({params})
licenceURL:
licenceKey:
var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.setLicence({
licenceURL:'',
licenceKey:''
})
iOS 系统
可提供的 1.0.3 及更高版本
配置播放器视图。
注意:本接口仅支持引擎2.0方式调用。引擎3.0上可直接通过 mo-tcliteplayer 标签配置使用播放器。
configPlayerView({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 TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.configPlayerView({
rect:{
x:,
y:,
w:,
h:
},
fixedOn:'',
fixed:false
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
重设播放器位置和大小
注意:本接口仅对 configPlayerView 打开的播放器有效
resizePlayerView({params})
rect:
{
x: 0, //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:原x坐标
y: 0, //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:原y坐标
w:300, //(可选项)数字类型;插件宽度(相对于所属的 Window 或 Frame;默认:原宽度
h:600 //(可选项)数字类型;插件高度(相对于所属的 Window 或 Frame;默认:原高度
}
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.resizePlayerView({
rect:{
x:,
y:,
w:,
h:
}
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
隐藏播放试图的 frame
hidePlayerView()
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.hidePlayerView()
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
恢复显示播放试图的 frame
showPlayerView()
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.showPlayerView()
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
初始化播放器
initPlayer()
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.initPlayer()
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
关闭播放器
closePlayer()
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.closePlayer()
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
开启硬件加速,播放前设置有效。
enableHWAcceleration({params})
HWAcceleration:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.enableHWAcceleration({
HWAcceleration: true
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
点播配置
setPlayConfig({params})
connectRetryCount:
connectRetryInterval:
timeout:
keepLastFrameWhenStop:
cacheFolderPath:
maxCacheItems:
headers:
enableAccurateSeek:
autoRotate:
progressInterval:
maxBufferSize:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setPlayConfig({
maxBufferSize: 1000,
progressInterval:1,
autoRotate:true,
cacheFolderPath:'fs://TCLitePlayer/videoCache'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
startPlay后是否立即播放
setAutoPlay({params})
autoPlay:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setAutoPlay({
autoPlay: true
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
加密HLS的token。设置此值后,播放器自动在URL中的文件名之前增加 voddrm.token.TOKEN
setToken({params})
token:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setToken({
token: true
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置播放开始时间,在startPlay前设置,修改开始播放的起始位置
setStartTime({params})
startTime:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setStartTime({
startTime: 10
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
播放自定义视频
playWithUrl({params})
videoURL:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.playWithUrl({
videoURL:'http://af1fb2ef33ba36ebbfad.qiniucdn.apicloud-system.com/apicloud/1b99aa5822f858abd1da8b2bb8332055.MP4'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
播放腾讯云视频
playWithTCloud({params})
appId:
fileId:
psign:
timeout:
us:
exper:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.playWithTCloud({
us: 'weiorupqklfjasdiofdfas',
appId:1400329073,
fileId:'5285890799710670616'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
停止播放
stopPlay()
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.stopPlay()
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
暂停播放
pause()
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.pause()
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
恢复播放
resume()
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.resume()
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
isPlaying()
是否正在播放
ret:
{
isPlaying:, //布尔类型;是否正在播放
}
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.isPlaying(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
获取当前播放位置
currentPlaybackTime()
ret:
{
currentPlaybackTime: //数字类型;当前播放位置
}
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.currentPlaybackTime(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
获取视频总时长
duration()
ret:
{
duration: //数字类型;总时长
}
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.duration(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
获取视频可播放时长
playableDuration()
ret:
{
playableDuration: //数字类型;可播放时长
}
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.playableDuration(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
获取视频宽高
getWidthHeight()
ret:
{
width: //数字类型;视频宽
height: //数字类型;视频高
}
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.getWidthHeight(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置视频旋转角度
setRenderRotation({params})
orientation:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setRenderRotation({
orientation:
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置视频显示模式
setRenderMode({params})
mode:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setRenderMode({
mode:
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置静音
setMute({params})
enable:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setMute({
enable:
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置音量
setVolume({params})
volume:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setVolume({
volume: 50
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
获取截图
snapshot(callback(ret))
ret:
{
status:, //布尔类型;是否获取成功
path: //字符串类型;截图路径
}
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.snapshot(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置播放速率
setRate({params})
rate:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setRate({
rate:
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置镜像
setMirror({params})
mirror:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setMirror({
mirror:
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置循环播放
setLoop({params})
loop:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setLoop({
loop:
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
addEventListener(callback(ret))
添加播放器事件监听
ret:
{
evtID: '', //字符串类型;回调事件类型,详情参见本页附录 TCLiteAVEvent
evtMsg:, //字符串类型;事件描述
evtTime:'', //字符串类型;事件发生的UTC毫秒时间戳
evtBlockTime:, //字符串类型;卡顿时间(毫秒)
evtParam1:'', //字符串类型;事件参数1
evtParam2:'', //字符串类型;事件参数2
evtPlayProgress:, //字符串类型;视频播放进度
evtPlayDuration:'', //字符串类型;视频总时长
evtPlayableDuration:,//字符串类型;视频可播放时长
evtPlayCoverUrl:'', //字符串类型;视频封面
evtPlayUrl:'', //字符串类型;视频播放地址
evtPlayName:'', //字符串类型;视频名称
evtPlayDescription:'',//字符串类型;视频简介
}
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.addEventListener(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
添加网络事件监听
addNetStatusListener(callback(ret))
ret:
{
cpuUsage: '', //字符串类型; 进程 CPU 占用率
cpuUsageD:, //字符串类型;系统 CPU 占用率
videoWidth:'', //字符串类型;视频分辨率宽度
videoHeight:, //字符串类型;视频分辨率高度
videoFPS:'', //字符串类型;视频帧率:也就是视频编码器每秒生产了多少帧画面。
videoGop:'', //字符串类型;关键帧间隔:即每两个关键帧(I帧)间隔时长,单位:秒
videoBitrate:, //字符串类型;视频码率:即视频编码器每秒生产了多少视频数据,单位:kbps。
audioBitrate:'', //字符串类型;音频码率:即音频编码器每秒生产了多少音频数据,单位:kbps。
netSpeed:, //字符串类型;传输速度:即每秒钟发送或接收了多少字节的数据。
videoCache:'', //字符串类型;播放端缓冲的视频总时长。
audioCache:'', //字符串类型;播放端缓冲的音频总时长。
audioInfo:'', //字符串类型;音频信息:包括采样率信息和声道数信息
netJitter:'', //字符串类型;网络抖动:数值越大表示抖动越大,网络越不稳定
netQuality:'', //字符串类型;网络质量:0:未定义 1:最好 2:好 3:一般 4:差 5:很差 6:不可用
}
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.addNetStatusListener(function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
添加下载监听
addDownloadListener(callback(ret))
ret:
{
eventType: '', //字符串类型; 下载事件类型
//取值范围:
//start:开始下载
//progress:正在下载
//stop:停止下载
//finish:完成下载
//error:发生错误
progress: //数字类型;下载进度,仅 eventType 为progress时有值
}
err:
{
code: '', //数字类型; 错误码
msg: //数字类型;错误信息
}
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.addDownloadListener(function(ret,err){
api.alert({msg: JSON.stringify(ret)});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
设置下载目录
setDownloadPath({params})
downloadPath:
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.setDownloadPath({
downloadPath:'fs://litePlayer'
})
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
下载腾讯云端的视频,同时只能下载一个视频,不支持同时下载多个视频。
startDownload({params},callback(ret))
注意:Android平台下暂不支持下载 MP4 和 FLV 格式的文件,仅支持将 HLS 下载到本地。
appId:
fileId:
psign:
timeout:
us:
exper:
token:
quality:
ret:
{
mediaInfo: { //JSON对象;
url:'', //字符串类型;下载地址
duration:'', //数字类型;时长
size:'', //数字类型;文件总大小,单位:byte
downloadSize:'', //数字类型;已下载大小,单位:byte
segments:'', //数字类型;分段总数
downloadSegments:'',//数字类型;已下载的分段数
progress:'', //数字类型;进度
playPath:'', //字符串类型;本地路径
speed: //数字类型;下载速度,byte每秒
}
}
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.startDownload({
appId:,
fileId:,
psign:
},function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
下载视频,同时只能下载一个视频,不支持同时下载多个视频。
startDownloadUrl({params},callback(ret))
url:
ret:
{
mediaInfo: { //JSON对象;
url:'', //字符串类型;下载地址
duration:'', //数字类型;时长
size:'', //数字类型;文件总大小,单位:byte
downloadSize:'', //数字类型;已下载大小,单位:byte
segments:'', //数字类型;分段总数 仅ios支持
downloadSegments:'',//数字类型;已下载的分段数 仅ios支持
progress:'', //数字类型;进度
playPath:'', //字符串类型;本地路径
speed: //数字类型;下载速度,byte每秒 仅ios支持
}
}
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.startDownloadUrl({
url:''
},function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
停止下载视频
stopDownload({params},callback(ret))
us:
url:
ret:
{
success: //布尔类型;是否停止下载成功
}
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.stopDownload({
us:'wieuyqoeutdah123'
},function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
删除下载视频
deleteDownloadFile({params},callback(ret))
playPath:
ret:
{
success: //布尔类型;是否删除成功
}
var TCLitePlayer = api.require('TCLitePlayer');
TCLitePlayer.deleteDownloadFile({
playPath:'pqietyp'
},function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
EVT_RTMP_PUSH_CONNECT_SUCC = 1001, ///< 直播,已经连接 RTMP 推流服务器 EVT_RTMP_PUSH_BEGIN = 1002, ///< 直播,已经与 RTMP 服务器握手完毕,开始推流 EVT_CAMERA_START_SUCC = 1003, ///< 打开摄像头成功 EVT_SCREEN_CAPTURE_SUCC = 1004, ///< 录屏启动成功 EVT_UP_CHANGE_RESOLUTION = 1005, ///< 上行动态调整分辨率 EVT_UP_CHANGE_BITRATE = 1006, ///< 码率动态调整 EVT_FIRST_FRAME_AVAILABLE = 1007, ///< 首帧画面采集完成 EVT_START_VIDEO_ENCODER = 1008, ///< 编码器启动成功 EVT_SNAPSHOT_COMPLETE = 1022, ///< 一帧截图完成 EVT_CAMERA_REMOVED = 1023, ///< 摄像头设备已被移出(Windows 和 Mac 版 SDK 使用) EVT_CAMERA_AVAILABLE = 1024, ///< 摄像头设备重新可用(Windows 和 Mac 版 SDK 使用) EVT_CAMERA_CLOSE = 1025, ///< 关闭摄像头完成(Windows 和 Mac 版 SDK 使用) EVT_RTMP_PUSH_PUBLISH_START = 1026, ///< 直播,与 RTMP 服务器连接后,收到 NetStream.Publish.Start 消息,表明流发布成功(SDK 内部事件,不会对外抛出) EVT_HW_ENCODER_START_SUCC = 1027, ///< 硬编码器启动成功 EVT_SW_ENCODER_START_SUCC = 1028, ///< 软编码器启动成功 EVT_LOCAL_RECORD_RESULT = 1029, ///< 本地录制结果 EVT_LOCAL_RECORD_PROGRESS = 1030, ///< 本地录制状态通知
EVT_PLAY_LIVE_STREAM_CONNECT_SUCC = 2001, ///< 直播,已经连接 RTMP 拉流服务器
EVT_PLAY_LIVE_STREAM_BEGIN = 2002, ///< 直播,已经与 RTMP 服务器握手完毕,开始拉流
EVT_RENDER_FIRST_I_FRAME = 2003, ///< 渲染首个视频数据包(IDR)
EVT_VIDEO_PLAY_BEGIN = 2004, ///< 视频播放开始
EVT_VIDEO_PLAY_PROGRESS = 2005, ///< 视频播放进度
EVT_VIDEO_PLAY_END = 2006, ///< 视频播放结束
EVT_VIDEO_PLAY_LOADING = 2007, ///< 视频播放 loading
EVT_START_VIDEO_DECODER = 2008, ///< 解码器启动
EVT_DOWN_CHANGE_RESOLUTION = 2009, ///< 下行视频分辨率改变
EVT_GET_VODFILE_MEDIAINFO_SUCC = 2010, ///< 点播,获取点播文件信息成功
EVT_VIDEO_CHANGE_ROTATION = 2011, ///< 视频旋转角度发生改变
EVT_PLAY_GET_MESSAGE = 2012, ///< 消息事件
EVT_VOD_PLAY_PREPARED = 2013, ///< 点播,视频加载完毕
EVT_VOD_PLAY_LOADING_END = 2014, ///< 点播,loading 结束
EVT_PLAY_LIVE_STREAM_SWITCH_SUCC = 2015, ///< 直播,切流成功(切流可以播放不同画面大小的视频)
EVT_VOD_PLAY_TCP_CONNECT_SUCC = 2016, ///< 点播,TCP 连接成功(SDK 内部事件,不会对外抛出)
EVT_VOD_PLAY_FIRST_VIDEO_PACKET = 2017, ///< 点播,收到首帧数据(SDK 内部事件,不会对外抛出)
EVT_VOD_PLAY_DNS_RESOLVED = 2018, ///< 点播,DNS 解析完成(SDK 内部事件,不会对外抛出)
EVT_VOD_PLAY_SEEK_COMPLETE = 2019, ///< 点播,视频播放 Seek 完成(SDK 内部事件,不会对外抛出)
EVT_VIDEO_DECODER_CACHE_TOO_MANY_FRAMES = 2020, ///< 视频解码器缓存帧数过多,超过40帧(SDK 内部事件,不会对外抛出)
EVT_HW_DECODER_START_SUCC = 2021, ///< 硬解码器启动成功(SDK 内部事件,不会对外抛出)
EVT_SW_DECODER_START_SUCC = 2022, ///< 软解码器启动成功(SDK 内部事件,不会对外抛出)
EVT_AUDIO_JITTER_STATE_FIRST_LOADING = 2023, ///< 音频首次加载(SDK 内部事件,不会对外抛出)
EVT_AUDIO_JITTER_STATE_LOADING = 2024, ///< 音频正在加载(SDK 内部事件,不会对外抛出)
EVT_AUDIO_JITTER_STATE_PLAYING = 2025, ///< 音频正在播放(SDK 内部事件,不会对外抛出)
EVT_AUDIO_JITTER_STATE_FIRST_PLAY = 2026, ///< 音频首次播放(SDK 内部事件,不会对外抛出)
EVT_MIC_START_SUCC = 2027, ///< 麦克风启动成功
EVT_PLAY_GET_METADATA = 2028, ///< 视频流MetaData事件
EVT_MIC_RELEASE_SUCC = 2029, ///< 释放麦克风占用
EVT_AUDIO_DEVICE_ROUTE_CHANGED = 2030, ///< 音频设备的route发生改变,即当前的输入输出设备发生改变,比如耳机被拔出
EVT_PLAY_GET_FLVSESSIONKEY = 2031, ///< TXLivePlayer 接收到http响应头中的 flvSessionKey 信息
EVT_ROOM_ENTER = 1018, ///< 进入房间成功
EVT_ROOM_EXIT = 1019, ///< 退出房间
EVT_ROOM_USERLIST = 1020, ///< 下发房间成员列表(不包括自己)
EVT_ROOM_NEED_REENTER = 1021, ///< WiFi 切换到4G 会触发断线重连,此时需要重新进入房间(拉取最优的服务器地址)
EVT_ROOM_ENTER_FAILED = 1022, ///< 自己进入房间失败
EVT_ROOM_USER_ENTER = 1031, ///< 进房通知
EVT_ROOM_USER_EXIT = 1032, ///< 退房通知
EVT_ROOM_USER_VIDEO_STATE = 1033, ///< 视频状态位变化通知
EVT_ROOM_USER_AUDIO_STATE = 1034, ///< 音频状态位变化通知
EVT_ROOM_REQUEST_IP_SUCC = 8001, ///< 拉取接口机服务器地址成功
EVT_ROOM_CONNECT_SUCC = 8002, ///< 连接接口机服务器成功
EVT_ROOM_REQUEST_AVSEAT_SUCC = 8003, ///< 请求视频位成功