2016-06-30 65 views
1

我正在使用<video>作为背景英雄视频。它从零时开始。当它到达0:11剪辑的末尾时,它会弹出回到:02并从那里重复。我已经完成它:HTML5视频正在寻求在Safari上“结束”的中间视频

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'),所以有一些东西。谢谢你的帮助!

回答

0

Safari中的play()函数似乎将当前时间重置为零。

如果play()视频,并直接后置的currentTime的,它像预期:

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

天哪织补它。当你大脑试图找到答案并最终不必要地过度复杂时,总是令人沮丧。谢谢! – Holly

+0

有时它只需要第二双眼睛;-) –

+0

这里同样的问题。当我在播放()后放置当前时间时,我看到视频在00:00闪烁,之后跳转到currentTime。有任何想法吗? – user2622348