【问题标题】:How to set initial time for HLS (m3u8) in Video.js on Chrome, Android如何在 Chrome、Android 上的 Video.js 中设置 HLS (m3u8) 的初始时间
【发布时间】:2021-05-21 15:39:07
【问题描述】:

我正在尝试在页面加载后的某个时间开始播放 HLS 视频。在大多数浏览器上,这种方法效果很好:

var player = videojs("video");
player.on('canplaythrough', setInitialTime());

function setInitialTime() {
  player.currentTime(300);
}

CodePen example

但在 Android 版 Chrome 上,视频总是从 0 秒开始。

我尝试在play 而不是canplaythrough 上触发事件,但这不是理想的解决方案,因为用户必须在点击播放按钮后等待预加载。

在 Android 11、Chrome 89.0.4389 上测试

【问题讨论】:

    标签: android google-chrome http-live-streaming video.js m3u8


    【解决方案1】:

    视频正在使用 Android 的本机 HLS 支持播放,这可能是一个问题,因为 Android 的 HLS 支持存在相当多的错误,并且事件可能在您有机会设置侦听器之前触发。

    首先,更新 V​​ideo.js。 5.x 现在已经很老了。最新的是 7.11.8。同时删除已经过时的 videojs-contrib-hls。旧版本默认使用浏览器的 HLS 支持(如果可用),新版本使用 Video.js 的 HTTP 流而不是浏览器(Safari 除外)。

    其次,即使使用最新的 Video.js,如果视频元素在播放器初始化时已经加载了 HLS 视频,那么它不会再次重新加载源。为避免这种情况,请使用<video-js> 元素而不是<video>,或者删除source 元素并使用player.src({src: 'https...', type: 'application/x-mpegURL'}) 加载。

    【讨论】:

      猜你喜欢
      • 2018-07-18
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 2014-03-10
      • 2020-08-15
      相关资源
      最近更新 更多