【问题标题】:HTML5 video seeking to mid-video on 'ended' on Safari在 Safari 上“结束”时寻找中间视频的 HTML5 视频
【发布时间】:2016-06-30 22:18:11
【问题描述】:

我正在使用<video> 作为背景英雄视频。它从 0:00 开始。当它到达 0:11 剪辑的末尾时,它会弹回到 :02 并从那里重复。我已经完成了:

document.getElementById('bgvid').addEventListener('ended',repeatVid,false);
function repeatVid(e) {
  var mediaElement = document.getElementById('bgvid');
  mediaElement.currentTime = 2;
  mediaElement.play();
}

我只关心桌面体验,因为它会切换到平板电脑/移动设备上的后备图像。这适用于 Chrome、Firefox 甚至 IE。然而,Safari 从 0:00 而不是 :02 重复返回。

将整个功能放在按钮 onclick 上而不是 addeventListener 上是可行的。重新分配 currentTime 似乎不是问题。我试过把整个东西放在video.oncanplaythrough = function () { 里面。我尝试将.addEventListener('ended') 更改为$('video').on('ended',function(){video.onended = function () {

似乎 .play() 总是把你送回 0:00,除非我可以让它工作 on('click'),所以有些事情。感谢您的帮助!

【问题讨论】:

    标签: javascript jquery html video safari


    【解决方案1】:

    Safari 中的play() 函数似乎将 currentTime 重置为零。

    如果您play() 视频并在此之后直接设置 currentTime,它会像预期的那样工作:

    document.getElementById('bgvid').addEventListener('ended',repeatVid,false);
    function repeatVid(e) {
      var mediaElement = document.getElementById('bgvid');
      mediaElement.play();
      mediaElement.currentTime = 2;
    }
    

    【讨论】:

    • 天哪,该死的。当您绞尽脑汁试图找到答案并最终导致不必要的过度复杂化时,这总是令人沮丧。谢谢!
    • 有时它只需要第二双眼睛;-)
    • 这里有同样的问题。当我将 currentTime 放在 play() 之后时,我看到视频在 00:00 闪烁,然后跳转到 currentTime。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 2012-06-30
    相关资源
    最近更新 更多