Cheney925 / cordova-plugin-tencent-liteav

A cordova plugin for video playing with Tencent's LiteAV SDK. Support RTMP/HLS/FLV/MP4.
25 stars 9 forks source link
cordova flv hls liteav livestream m3u8 plugin rtmp tencent video vod

cordova-plugin-tencent-liteav

腾讯小直播LiteAV SDK Cordova插件

npm taobaonpm

安装 Installation

cordova plugin add cordova-plugin-tencent-liteav

使用 Usage

直播/播放视频 CLiteAV.startPlay()

CLiteAV.startPlay(options, successCallback, errorCallback)

调用startPlay方法时,需要将前端网页的背景颜色设置为透明,并保证没有多余的元素,否则会遮挡住播放器。这是因为WebView层在原生播放器层的上层,如果WebView有背景色,就会挡住下面的层。这么做也是为了方便前端可以在上层添加一些播放控件,如播放、暂停、全屏、进度条。可以参考Ionic Demo:https://github.com/Cheney925/ionic-for-cordova-plugin-tencent-liteav

参照以下设置:

body.video-play {
background-color: transparent !important;
ion-app {
background-color: transparent !important;
.app-root {
opacity: 0;
}
.ion-page.show-page ~ .nav-decor {
background-color: transparent !important;
}
.content {
background-color: transparent !important;
}
}
}

停止播放 CLiteAV.stopPlay()

停止播放,退出播放器,播放器会被销毁。

CLiteAV.stopPlay(successCallback, errorCallback)

暂停播放 CLiteAV.pause()

暂停播放,播放器仍然存在,如需销毁,调用stopPlay()。

CLiteAV.pause(successCallback, errorCallback)

恢复播放 CLiteAV.resume()

CLiteAV.resume(successCallback, errorCallback)

设置播放模式 CLiteAV.setPlayMode()

CLiteAV.setPlayMode(mode, successCallback, errorCallback)

开启连麦 CLiteAV.startLinkMic()

CLiteAV.startLinkMic(options, successCallback, errorCallback)

关闭连麦 CLiteAV.stopLinkMic()

CLiteAV.stopLinkMic(successCallback, errorCallback)

获取视频信息 CLiteAV.getNetStatus()

CLiteAV.getNetStatus(successCallback, errorCallback)

successCallback有回调参数netStatus,包含了播放的视频状态信息

示例如下:

{
    "isTrusted": false,
    "AV_PLAY_INTERVAL": -22,
    "CPU_USAGE_DEVICE": 0.026000000536441803,
    "SERVER_IP": "112.65.220.64:1935", // 连接的服务器IP
    "NET_JITTER": 0,
    "CODEC_CACHE": 1621,
    "AUDIO_INFO": "1|48000,2|48000,1",
    "AUDIO_BITRATE": 32, // 当前流媒体的音频码率,单位 kbps
    "NET_SPEED": 318, // 当前网络数据接收速度
    "VIDEO_HEIGHT": 288, // 视频分辨率 - 高
    "VIDEO_BITRATE": 286, // 当前流媒体的视频码率,单位 kbps
    "V_DEC_CACHE_SIZE": 4,
    "CPU_USAGE": 0.10025062412023544, // 当前瞬时CPU使用率
    "CACHE_SIZE": 1680, // 缓冲区(jitterbuffer)大小,缓冲区当前长度为 0,说明离卡顿就不远了
    "VIDEO_WIDTH": 480, // 视频分辨率 - 宽
    "VIDEO_GOP": 1,
    "AV_RECV_INTERVAL": -41,
    "VIDEO_CACHE_SIZE": 42,
    "VIDEO_FPS": 25, 、// 当前流媒体的视频帧率
    "AUDIO_PLAY_SPEED": 5
}

监听视频信息变化 CLiteAV.onNetStatusChange

document.addEventListener('CLiteAV.onNetStatusChange', function(netStatus) {})

播放事件 CLiteAV.onPlayEvent

document.addEventListener('CLiteAV.onPlayEvent', function(data) {})

常用播放事件

事件ID 数值 含义说明
PLAY_EVT_CONNECT_SUCC 2001 已经连接服务器
PLAY_EVT_RTMP_STREAM_BEGIN 2002 已经连接服务器,开始拉流(仅播放RTMP地址时会抛送)
PLAY_EVT_RCV_FIRST_I_FRAME 2003 已经网络接收到首个可渲染的视频数据包(IDR)服务器
PLAY_EVT_PLAY_BEGIN 2004 视频播放开始,如果有转菊花什么的这个时候该停了
PLAY_EVT_PLAY_PROGRESS 2005 视频播放进度,会通知当前播放进度、加载进度 和总体时长
PLAY_EVT_PLAY_END 2006 视频播放结束
PLAY_EVT_PLAY_LOADING 2007 视频播放loading,如果能够恢复,之后会有BEGIN事件
PLAY_EVT_GET_MESSAGE 2012 用于接收夹在音视频流中的消息
PLAY_ERR_NET_DISCONNECT -2301 网络断连,且经多次重连亦不能恢复,更多重试请自行重启播放

Change Log

Demo

基于Ionic 3的Demo:https://github.com/Cheney925/ionic-for-cordova-plugin-tencent-liteav

相关文档 Documents

腾讯云小直播官方文档:https://cloud.tencent.com/document/product/454