TXLivePlayer

立即使用

概述

简述

模块封装了腾讯的直播视频播放器。直播(LIVE)的视频源是主播实时推送的。因此,主播停止推送后,播放端的画面也会随即停止,而且由于是实时直播,所以播放器在播直播 URL 的时候是没有进度条的。

通常使用的直播协议如下,App 端推荐使用 FLV 协议的直播地址(以“http”打头,以“.flv”结尾):

  • FLV:成熟度高、高并发无压力,播放延迟2-3s
  • RTMP:优质线路下理论延迟最低(1-3s),高并发情况下表现欠佳
  • HLS:手机浏览器支持度高,延迟也非常高(10-30s)

关于AVM方式

本模块支持 AVM 方式打开。通过 AVM 标签方式打开的模块,在 js 代码中需要通过 document.getElementById 的形式获取该模块实例对象然后进行其它逻辑的操作。否则会产生莫名其妙的问题。

该模块同时也支持 api.require 方式调用,通过 configView 接口相当于 AVM 的标签打开了一个视频播放区域的 frame(view)模块,用户点击全屏按钮后,模块自动代码一个 window 来全屏播放视频。

模块接口

configPlayerView

配置直播播放器视图。

注意:本接口仅支持引擎2.0方式调用。引擎3.0上可直接通过 mo-txliveplayer 标签配置使用播放器。

configPlayerView({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 TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.configPlayerView({
  rect:{
    x:,
    y:,
    w:,
    h:
  },
  fixedOn:'',
  fixed:false
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

resizePlayerView

重设播放器位置和大小

注意:本接口仅对 configPlayerView 打开的播放器有效

resizePlayerView({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 TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.resizePlayerView({
  rect:{
    x:,
    y:,
    w:,
    h:
  }
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

hidePlayerView

隐藏播放试图的 frame

hidePlayerView()

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.hidePlayerView()

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

showPlayerView

恢复显示播放试图的 frame

showPlayerView()

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.showPlayerView()

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

initPlayer

初始化播放器

initPlayer()

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.initPlayer()

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

closePlayer

关闭播放器

closePlayer()

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.closePlayer()

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

playWithUrl

播放自定义视频

playWithUrl({params})

params

videoURL:

  • 类型:字符串
  • 描述:视频的URL

type:

  • 类型:字符串
  • 描述:(可选项)播放类型
  • 取值范围:
    • rtmp:
    • flv:

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.playWithUrl({ 
   type:'rtmp',
    videoURL:'http://af1fb2ef33ba36ebbfad.qiniucdn.apicloud-system.com/apicloud/1b99aa5822f858abd1da8b2bb8332055.MP4'
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

enableHWAcceleration

开启硬件加速,播放前设置有效。

enableHWAcceleration({params})

params

HWAcceleration:

  • 类型:布尔
  • 描述:(可选项)是否开启硬件加速
  • 默认:true

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.enableHWAcceleration({
    HWAcceleration: true
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setPlayConfig

播放配置

setPlayConfig({params})

params

cacheTime:

  • 类型:数字
  • 描述:(可选项)播放器缓存时间,单位秒
  • 默认:5

bAutoAdjustCacheTime:

  • 类型:布尔
  • 描述:(可选项)是否自动调整播放器缓存时间
  • 默认:true

maxAutoAdjustCacheTime:

  • 类型:数字
  • 描述:播放器缓存自动调整的最大时间,单位秒
  • 默认:5

minAutoAdjustCacheTime:

  • 类型:数字
  • 描述:播放器缓存自动调整的最小时间,单位秒
  • 默认:5

videoBlockThreshold:

  • 类型:数字
  • 描述:(可选项)播放器视频卡顿报警阈值,单位毫秒。只有渲染间隔超过这个阈值的卡顿才会有
  • 默认:800

connectRetryCount:

  • 类型:数字
  • 描述:(可选项)播放器遭遇网络连接断开时 SDK 默认重试的次数,取值范围1 - 10
  • 默认:3

connectRetryInterval:

  • 类型:数字
  • 描述:(可选项)播放器连接重试间隔:单位秒,最小值为3, 最大值为30
  • 默认:3

    enableAEC:

  • 类型:布尔

  • 描述:(可选项)是否开启回声消除
  • 默认:false

enableMessage:

  • 类型:数字
  • 描述:(可选项)是否开启消息通道
  • 默认:false

enableMetaData:

  • 类型:布尔
  • 描述:是否开启 MetaData 数据回调
  • 默认:false

flvSessionKey:

  • 类型:字符串
  • 描述:(可选项)是否开启 HTTP 头信息回调
  • 默认:''
  • 说明:
HTTP 响应头中除了“content-length”、“content-type”等标准字段,不同云服务商还可能会添加一些非标准字段。
比如腾讯云会在直播 CDN 的 HTTP-FLV 格式的直播流中增加 “X-Tlive-SpanId” 响应头,并在其中设置一个随机字符串,用来唯一标识一次直播。

如果您在使用腾讯云的直播 CDN,可以设置 flvSessionKey 为 @“X-Tlive-SpanId”,SDK 会在 HTTP 响应头里解析这个字段,并通过 TXLivePlayListener 中的 onPlayEvent(EVT_PLAY_GET_FLVSESSIONKEY) 事件通知给您的 App。

【特别说明】每条音视频流中只能解析一个 flvSessionKey,除非断网重连,否则 EVT_PLAY_GET_FLVSESSIONKEY 只会抛送一次。

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.setPlayConfig({
    cacheTime: 5,
    bAutoAdjustCacheTime:true,
    maxAutoAdjustCacheTime:5,
    flvSessionKey:'X-Tlive-SpanId'
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

stopPlay

停止播放音视频流

stopPlay()

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.stopPlay()

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

isPlaying

isPlaying()

是否正在播放

callback

ret:

  • 类型:JSON对象
  • 描述:返回值
{ 
   isPlaying:,              //布尔类型;是否正在播放
}

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.isPlaying(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

pause

暂停播放

pause()

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.pause()

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

resume

恢复播放

resume()

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.resume()

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setRenderRotation

设置视频旋转角度

setRenderRotation({params})

params

orientation:

  • 类型:字符串
  • 描述:(可选项)视频旋转方向
  • 取值范围:
    • right:
    • left:
    • down:
    • up:

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.setRenderRotation({
    orientation: 
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setRenderMode

设置视频显示模式

setRenderMode({params})

params

mode:

  • 类型:字符串
  • 描述:(可选项)视频旋转方向
  • 取值范围:
    • screen:图像铺满屏幕,不留黑边,如果图像宽高比不同于屏幕宽高比,部分画面内容会被裁剪掉。
    • edge: 图像适应屏幕,保持画面完整,但如果图像宽高比不同于屏幕宽高比,会有黑边的存在。

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.setRenderMode({
    mode: 
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

snapshot

获取截图

snapshot(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   status:,          //布尔类型;是否获取成功
   path:             //字符串类型;截图路径
}

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.snapshot(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本,注意Android只支持推流过程中本地截图。

setMute

设置是否开启静音,播放前设置有效。

setMute({params})

params

enable:

  • 类型:布尔
  • 描述:(可选项)是否静音
  • 默认:false

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.setMute({
    enable: true
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setVolume

设置音量

setVolume({params})

params

volume:

  • 类型:数字
  • 描述:(可选项)设置音量大小,取值范围0 - 100
  • 默认:1

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.setVolume({
    volume: 1
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setAudioRoute

设置声音播放模式(切换扬声器,听筒)

setAudioRoute({params})

params

audioRoute:

  • 类型:字符串
  • 描述:(可选项)声音播放模式
  • 默认:speaker
    • receiver:听筒
    • speaker:扬声器

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.setAudioRoute({
    audioRoute:'speaker'
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setAudioVolumeEvaluationListener

监听音量大小变化

setAudioVolumeEvaluationListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   volume:          //数字类型; 当前音量大小
}

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.setAudioVolumeEvaluationListener(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

enableAudioVolumeEvaluation

设置播放开始时间,在 playWithUrl 前设置,修改开始播放的起始位置

enableAudioVolumeEvaluation({params})

params

interval:

  • 类型:数字
  • 描述:决定了 volumeEvaluationListener 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms;

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.enableAudioVolumeEvaluation({
    interval: 300
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

addEventListener

addEventListener(callback(ret))

添加直播事件监听

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   evtID: '',           //字符串类型;回调事件类型,详情参见本页附录 TXLiveAVEvent
   evtMsg:,             //字符串类型;事件描述
   evtTime:'',          //字符串类型;事件发生的UTC毫秒时间戳
   evtBlockTime:,       //字符串类型;卡顿时间(毫秒)
   evtParam1:'',        //字符串类型;事件参数1
   evtParam2:'',        //字符串类型;事件参数2
   evtPlayProgress:,    //字符串类型;视频播放进度
   evtPlayDuration:'',  //字符串类型;视频总时长
   evtPlayableDuration:,//字符串类型;视频可播放时长
   evtPlayCoverUrl:'',  //字符串类型;视频封面
   evtPlayUrl:'',       //字符串类型;视频播放地址
   evtPlayName:'',      //字符串类型;视频名称
   evtPlayDescription:'',//字符串类型;视频简介
}

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.addEventListener(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

addNetStatusListener

添加网络事件监听

addNetStatusListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   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 TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.addNetStatusListener(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

prepareLiveSeek

直播时移准备,拉取该直播流的起始播放时间。使用时移功能需在播放开始后调用此方法,否则时移失败。

prepareLiveSeek({params})

params

domain:

  • 类型:字符串
  • 描述:时移域名

bizId:

  • 类型:数字
  • 描述:流 bizId

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   state:         //数字类型; 0:OK;-1:无播放地址;-2:appId 未配置
}

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.prepareLiveSeek({
    domain:'',
    bizId:4563
})

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

resumeLive

停止时移播放,返回直播

resumeLive(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   state:        //数字类型;0:成功;其它:失败
}

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.resumeLive(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

seek

播放跳转到音视频流某个时间

seek({params},callback(ret))

params

toTime:

  • 类型:数字
  • 描述:流时间,单位为秒

callback(ret) (仅IOS支持)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   state:           //数字类型;0:成功;其它:失败
}

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.seek({
    toTime:
},function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setRate

设置播放速率

setRate({params},callback(ret))

params

rate:

  • 类型:字符串
  • 描述:正常速度为1.0;小于为慢速;大于为快速。最大建议不超过2.0

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.setRate({
    rate:
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

setLogViewMargin

设置状态浮层

setLogViewMargin({params},callback(ret))(仅IOS支持)

params

edgeMargin:

  • 类型:JSON对象
  • 描述:悬浮层边距
  • 内部字段:
{
    top:,          //数字类型;上边距
    left:,         //数字类型;左边距
    bottom:,       //数字类型;下边距
    right:         //数字类型;右边距
}

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.setLogViewMargin({
    edgeMargin:{
      top:,
      left:,
      bottom:,
      right:
    }
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

showVideoDebugLog

是否显示播放状态统计及事件消息浮层

showVideoDebugLog({params}) (仅IOS支持)

params

showLog:

  • 类型:布尔
  • 描述:是否显示

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.showVideoDebugLog({
    showLog:
},function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

switchStream

直播无缝切换

switchStream({params},callback(ret))

params

playUrl:

  • 类型:字符串
  • 描述:播放地址

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   state:      //数字类型;0:成功;其它:失败
}

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.switchStream({
    playUrl:
},function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

addRecordListener

addRecordListener(callback(ret))

添加录制视频事件监听

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   eventType: '',           //字符串类型;交互事件类型;取值范围:
                            //progress:正在进行录制
                            //complete:完成
   milliSecond:             //数字类型;录制时间,仅当 eventType 为 progress 时有值
   result:{                 //JSON对象;,仅当 eventType 为 complete 时有值
      retCode:,             //数字类型;状态码
      descMsg:'',           //字符串类型;状态信息
      videoPath:''          //字符串类型;视频路径
   }
}

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.addRecordListener(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

startRecord

开始录制

startRecord(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   state:      //数字类型;0:成功;其它:失败
}

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.startRecord(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本 ,注意:Android目前只支持录制直播流

stopRecord

停止录制

stopRecord({params},callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
{
   state:      //数字类型;0:成功;其它:失败
}

示例代码

var TXLivePlayer = api.require('TXLivePlayer');
TXLivePlayer.stopRecord(function(ret){
    alert(JSON.stringify(ret));
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

TXLiveAVEvent

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,     ///<  请求视频位成功