HLS.JS 自定义 分片 TS 请求 URL

栏目: 后端 · 前端 · 发布时间: 5年前

内容简介:很早之前写过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 ,目的是为了改变 XMLHttpRequestreadyState 状态。这段代码可以在源码

https://github.com/dailymotion/hls.js/blob/master/src/utils/xhr-loader.js#L61-L71

看到。

总的来说这些都是比较深入的操作,常规的播放应该都还是非常好上手。


以上所述就是小编给大家介绍的《HLS.JS 自定义 分片 TS 请求 URL》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

火的礼物:人类与计算技术的终极博弈(第4版)

火的礼物:人类与计算技术的终极博弈(第4版)

【美】Baase,Sara(莎拉芭氏) / 郭耀、李琦 / 电子工业出版社 / 89.00

《火的礼物:人类与计算技术的终极博弈 (第4版)》是一本讲解与计算技术相关的社会、法律和伦理问题的综合性读物。《火的礼物:人类与计算技术的终极博弈 (第4版)》以希腊神话中普罗米修斯送给人类的火的礼物作为类比,针对当前IT技术与互联网迅速发展带来的一些社会问题,从法律和道德的角度详细分析了计算机技术对隐私权、言论自由、知识产权与著作权、网络犯罪等方面带来的新的挑战和应对措施,讲解了计算技术对人类的......一起来看看 《火的礼物:人类与计算技术的终极博弈(第4版)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具