文档中心>X-P2P>接入指引>H5 SDK>HLS>接入其他播放器

接入其他播放器

最近更新时间:2024-08-23 15:04:32

我的收藏
sdk 提供了通用的sdk接口,您可以自行接入播放器
注意:
请注意当前 sdk 不支持多实例

对接准备

请参考接入说明

对接示例


if (HLSP2P.isSupported()) { // 首先确定是否支持sdk
// 创建sdk实例; 请注意这里创建接口为createCommon, 并且不能传入hls.js实例
// 详细参数见如下接口API
const hlsp2p = HLSP2P.createCommon({
videoId: '这里需要根据实际情况修改为<video>的id',
videoType: 'VOD', // 根据实际情况填写, 见API
url: '根据实际情况填写hls视频的m3u8 url',
domain: '见邮件',
xp2pAppId: '见邮件',
xp2pAppKey: '见邮件',
cloudAppId: 您在腾讯云的appid, // number类型
});
hlsp2p.on(HLSP2P.Events.Rollback, () => { // 监听SDK播放失败事件
hlsp2p.destroy(); // 需销毁sdk
});

// 请注意, 切换线路, 切换清晰度或不使用sdk后,都需主动调用destroy()


// 当需要下载ts文件的时候, 如下为下载ts示例
// 请求的ts参数
const requestContext = {
url: 'ts_download_url' // 完整的ts文件url
};
type SuccessData = ArrayBuffer;
type SuccessStats = {
loading: {
start: number; // 请求的开始时间
first: number; // 收到首包的时间
end: number; // 请求结束的时间
}
}

// 为请求设置回调方法
const requestCallbacks = {
onSuccess: (tsData: SuccessData, stats: SuccessStats) => {
// 下载成功后会调用. tsData即为下载完成的ts数据(Arraybuffer)
},
onError: () => {
// 下载失败后会调用
},
onTimeout: () => {
// 下载超时后会调用这个回调.
},
}

// 获取ts下载器
const commonLoader= hlsp2p.commonLoader;
// 传入刚才的参数, 通过p2p sdk ts下载器下载ts文件
commonLoader.loadTs(requestContext, requestCallbacks);
}


对接注意事项(重要)

1. 当关闭播放器的时候, 需要同步销毁 P2P sdk
2. 当更换视频播放的时候, 需要销毁 sdk 并重新初始化 sdk