此文档对接了 video.js http-streaming 模块, 简称 vhs
对接准备
请参考接入说明
注意:
请注意当前 sdk 不支持多实例
对接示例
<video id="my_video_2" class="video-js" controls preload="auto" width="640" height="268"><source src="https://test-streams.mux.dev/x36xhzz/url_0/193039199_mp4_h264_aac_hd_7.m3u8"></video><button onclick="startP2P">创建p2p sdk</button><button onclick="destroyP2P">销毁p2p sdk</button>
var videoId = 'my_video_2';var player = videojs(videoId, {}, function () {startP2P(player);});function startP2P(player) {// 获取videojs内置的vhs插件var vhs = window.player.tech().vhs;if (vhs && HLSP2P.isSupported() && !window.hlsp2p) {// 创建sdk实例const hlsp2p = HLSP2P.createCommon({videoId: videoId + '_html5_api', // 特别注意是<video>的id, 对于videojs来说, 传入的id拼接 _html5_apivideoType: 'VOD', // 根据实际情况填写, 见APIurl: '这里要替换为实际的m3u8 url',domain: '这里要根据邮件填写',xp2pAppId: '这里要根据邮件填写',xp2pAppKey: '这里需要根据邮件填写',cloudAppId: 需要替换为您在腾讯云的AppId});window.hlsp2p = hlsp2p;// 监听SDK播放失败事件hlsp2p.on(HLSP2P.Events.Rollback, () => {// 需销毁sdkhlsp2p.destroy();});// 将vhs绑定到p2p sdk, 从此vhs的下载的ts都会经由p2p sdkconst result = hlsp2p.attachVhsPlayer(vhs);if (result) {console.log('vhs绑定p2p sdk成功');} else {console.log('vhs绑定p2p sdk失败');}}}// 注意,// 1. 当关闭播放器的时候, 需要同步关闭P2P sdk!// 2. 当更换视频的时候, 需要销毁sdk并重新初始化sdkfunction destroyP2P() {if (window.hlsp2p) {window.hlsp2p.destroy();window.hlsp2p = null;}}/*** 关闭播放器同步关闭P2P sdk!*/function closePlayer() {player.dispose();destroyP2P();}
对接注意事项(重要)
1. 当关闭播放器的时候, 需要同步销毁 P2P sdk
2. 当更换视频播放的时候, 需要销毁 sdk 并重新初始化 sdk