Appearance
自定义地址提供者
在某些业务场景下,获取的分集信息里面,没有直接播放地址。需要在播放分集之前进行预处理获取分集信息。ESPlayerManager
提供urlProvider
应用在此场景。
第1步:自定义urlProvider
- 参数:为
Object
类型,属性自定义,无限制。
点击查看源码
js
{
xx: 1,
xxx: 2,
}
- 返回:播放需要的地址信息。
点击查看源码
js
{
urls: {
urlIndex: 0,
urlList: [{
url: 'http://qcloudcdn-moss.cp47.ott.cibntv.net/project/tvq/qsj_video/2021/12/07/3800609_9c0bae6b6d5df502ffa28f9396a2316e.mp4',
}],
},
xxx: 0,
}
示例代码: ESPlayerUrlProvider.js
点击查看源码
js
export function urlProvider(provideParams) {
return new Promise(function (resolve, reject) {
//-----------------模拟解析参数和自定义操作---------------
//....
//自定义解析参数: provideParams
//1.请求网络
//....
//2.请求本地缓存
//....
//3.其他操作
//....
//-----------------模拟成功---------------
let urls = {
urlIndex: 0,
urlList: [{
url: 'http://qcloudcdn-moss.cp47.ott.cibntv.net/project/tvq/qsj_video/2021/12/07/3800609_9c0bae6b6d5df502ffa28f9396a2316e.mp4',
}],
}
let result = {
//
urls: urls,
code: 0,
}
resolve(result);
//-----------------模拟失败---------------
// reject(-1);
});
}
第2步:分集中注册urlProvider
点击查看源码
js
let series = {
id: 0,
//-------------------start---------------------
//urlProvider: 固定属性
urlProvider: {
support: true,//support: 固定属性,用来判断是否启用
provider: urlProvider,//provider: 固定属性,自定义的地址提供者
providerParams: {//providerParams: 固定属性
id: "xxxx",//自定义参数
otherParams: {xxx: "xxxx"}//自定义参数
},
},
//--------------------end--------------------
playerType: 1,
}
let playInfo = {
seriesIndex: 0,
seriesList: [series]
}
this.$refs.es_player_manager.playVideo(playInfo);