内容简介:很早之前写过hls.js 源码解读【1】 ,基本分析了默认情况下,我们并不需要对解析出来的 ts 分片地址做改造,但是如果真的需要的话,其实有两个思路。思路 1 复写 Loader 。
很早之前写过hls.js 源码解读【1】 ,基本分析了 hls.js 这个库的设计和实现。阅读源码一方面是为了吸收对方设计或者编码上的优点,当然也有可能是另外一个原因,就是一些需求从表面的文档里找不到具体的实现思路。
默认情况下,我们并不需要对解析出来的 ts 分片地址做改造,但是如果真的需要的话,其实有两个思路。
思路 1 复写 Loader 。
自己实现一个关于请求的 Loader ,通过配置传入类似;
class XhrLoader extends Hls.DefaultConfig.loader { constructor(config) { super(config); var load = this.load.bind(this); this.load = function(context, config, callbacks) { // your code to handle context.url load(context,config,callbacks); }; } } var hls = new Hls({ Loader : XhrLoader, });
当然这样无疑增加了一些实现成本,还有一个思路,就是设置 xhrSetup
文档
const { source } = this.player; config.xhrSetup = (xhr, url) => { if (/\.mp4/.test(url)) { url = url + '?_q=....' xhr.open('GET', url, true); } };
尤其,需要重视要设置完成后的立即 open
,目的是为了改变 XMLHttpRequest
的 readyState
状态。这段代码可以在源码
https://github.com/dailymotion/hls.js/blob/master/src/utils/xhr-loader.js#L61-L71
看到。
总的来说这些都是比较深入的操作,常规的播放应该都还是非常好上手。
以上所述就是小编给大家介绍的《HLS.JS 自定义 分片 TS 请求 URL》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 自定义Egg.js的请求级别日志
- springboot使用filter获取自定义请求头
- 【SpringBoot WEB 系列】RestTemplate 之自定义请求头
- 定义一个通用的多功能网络请求 Widget(Flutter)
- IJPay 让支付触手可及,1.2.2 自定义网络请求
- IJPay 让支付触手可及,1.2.2 自定义网络请求
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
大数据大创新:阿里巴巴云上数据中台之道
邓中华 / 电子工业出版社 / 2018-11 / 99
阿里巴巴云上数据中台正服务着阿里生态中的数十个业务板块、百余家公司、千万级客户,在帮助决策层看清甚至决定业态走向的同时,在上万个业务场景中应用并催生创新。 《大数据大创新:阿里巴巴云上数据中台之道》基于作者在阿里巴巴的十年大数据从业经历,精彩演绎云上数据中台之道。《大数据大创新:阿里巴巴云上数据中台之道》基于大数据探索的大趋势,讲述阿里巴巴云上数据中台顶层设计,再以实际案例详述阿里巴巴云上数......一起来看看 《大数据大创新:阿里巴巴云上数据中台之道》 这本书的介绍吧!