【问题标题】:Safari not handling html5 video events properly?Safari 不能正确处理 html5 视频事件?
【发布时间】:2018-11-12 10:15:14
【问题描述】:

我正在开发一个项目,该项目使用 cookie 来保存用户在 html5 视频上的进度,以便他们可以在后续访问时从中断的地方继续。

问题是 HTML5 视频事件似乎都没有正确触发,仅在 Safari 上。所有其他浏览器都可以正常工作。

这是我正在使用的代码:

video.addEventListener('loadedmetadata', function() {
    updateVideoProgress();
    var interval = setInterval(function() {storeVideoProgress()}, 1000);
}, false);

if (video.readyState > 3) {
    updateVideoProgress();
    var interval = setInterval(function() {storeVideoProgress()}, 1000);
}

请注意,我正在听什么事件并不重要。我试过“loadeddata”、“canplay”、“canplaythrough”等,但它们都没有在 Safari 上触发。在所有其他浏览器上,所有这些事件都会触发(但取决于事件可能会损害我的代码的功能)。

TL:DR -- 有没有人经历过 Safari 不触发 HTML5 视频事件,而所有其他浏览器都可以很好地处理它们?我该怎么做才能解决这个问题?

【问题讨论】:

    标签: javascript html video safari


    【解决方案1】:

    canplay 事件适用于 chrome 和 firefox。我只是将 loadedmetadat 视为 iOS 特定的 canplay 事件,因为 iOS 似乎不会自行触发 canplay

    loadedmetadata 中复制canplay 逻辑后,视频播放正常。

    【讨论】:

      猜你喜欢
      • 2018-10-07
      • 2013-07-26
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多