本插件是腾讯云《移动直播》SDK 的 Cordova 封装。
腾讯云官方文档:https://cloud.tencent.com/document/product/454
腾讯云移动直播的主要工作原理是怎样的?
主要是实现了 rtmp 协议,通过手机 APP(主要是 iOS,Android)在手机平台上实现推流和播放的接口, 同时绑定了摄像头等硬件可以直接在界面上展示直播内容。
这个插件通过什么方式集成到 Cordova 应用中呢?
这个插件可以通过 js 调用开启直播推流或者播放视频流,展示的界面元素会叠放在 CordovaWebView 的后面, 同时能够自动将 webView 设置成透明。webView 实现直播交互的功能组件即可。
支持的 rmtp 流 url 格式是怎样的?
注册开通腾讯云的视频直播应用后,访问https://console.cloud.tencent.com/live/livecodemanage, 可以看到具体生成推流地址的逻辑。
推流地址格式:
rtmp://1234.livepush.myqcloud.com/live/1234_Room47?bizid=1234&txSecret=XXXXXX&txTime=XXXXXXXX
其中 bizid=1234
四位数字是创建的应用编号,Room47
是房间号,可以根据需要自己生成。
txSecret
是经过验签的推流秘钥串,看文档用简单的 md5 即可生成。txTime
是加密的时间串。
播放地址格式(支持 RTMP/FLV/HLS 三种协议):
rtmp://1234.liveplay.myqcloud.com/live/1234_Room47
http://1234.liveplay.myqcloud.com/live/1234_Room47.flv
http://1234.liveplay.myqcloud.com/live/1234_Room47.m3u8
cordova plugin add --save https://github.com/easecloud/cordova-plugin-tencent-mlvb.git
<plugin name="cordova-plugin-tencent-mlvb"
spec="https://github.com/easecloud/cordova-plugin-tencent-mlvb.git" />
然后通过 cordova prepare
即可安装。
使用 window.TencentMLVB
对象调用相关的方法。
TencentMLVB.startPush(url, successCallback, errorCallback);
注意,为了使得背后的视频 UI 层能够显露出来,请务必把 HTML body 的背景设置为透明。
Android: 完成, iOS: 完成
TencentMLVB.stopPush();
Android: 完成, iOS: 开发中
TencentMLVB.startPush(url, playUrlType, successCallback, errorCallback);
需要手动指定拉流的类型,TencentMLVB.PLAY_URL_TYPE
列举了相关的枚举值:
PLAY_URL_TYPE: {
PLAY_TYPE_LIVE_RTMP: 0, // 传入的URL为RTMP直播地址
PLAY_TYPE_LIVE_FLV: 1, // 传入的URL为FLV直播地址
PLAY_TYPE_VOD_FLV: 2, // 传入的URL为RTMP点播地址
PLAY_TYPE_VOD_HLS: 3, // 传入的URL为HLS(m3u8)点播地址
PLAY_TYPE_VOD_MP4: 4, // 传入的URL为MP4点播地址
PLAY_TYPE_LIVE_RTMP_ACC: 5, // 低延迟连麦链路直播地址(仅适合于连麦场景)
PLAY_TYPE_LOCAL_VIDEO: 6 // 手机本地视频文件
},
例如:
TencentMLVB.startPlay(
'http://1234.liveplay.myqcloud.com/live/1234_Room47.flv',
TencentMLVB.PLAY_URL_TYPE.PLAY_TYPE_LIVE_FLV,
function (msgSuccess) {
// ...
},
function (msgError) {
// ...
},
)
TencentMLVB.stopPlay();
Android: 完成, iOS: 开发中
如何创建 Cordova 项目请看文档
Cordova 插件相关信息请看文档