MediaSource播放视频,快进(直接点击进度条)的时候怎么知道range范围呢

我通过MediaSource使用ajax加载视频数据播放,下面是关键代码

const mimeCodec = 'video/webm; codecs="vorbis,vp8"';
const mediaSource = new MediaSource();
this.video.src = URL.createObjectURL(mediaSource);
mediaSource.addEventListener('sourceopen', () => {
  this.sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
  this.sourceBuffer.addEventListener('updateend', () => {
    if(!this.sourceBuffer.updating && mediaSource.readyState === 'open') {
      // mediaSource.endOfStream();
      this.video.play();
      const { currentTime, duration, buffered } = this.video;
      console.log({
        currentTime,
        duration,
        buffered,
      });
    }
  });
  fetch('/api/video', {
    headers: {
      Range: `bytes=0-512000`,
    },
  }).then(res => res.arrayBuffer())
    .then(buffer => {
      this.sourceBuffer.appendBuffer(buffer);
    });
});

image.png

问题:

  1. 点击进度条怎么知道ajax请求头里面的Range应该传什么值呢
    image.png
阅读 3.6k
1 个回答

这么做的话 在fetch 里面 判断他的大小

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题