2012-02-08 70 views
0

我正在使用jQuery jPlayer播放视频文件。当结束的事件发生时,我使用“setMedia”功能设置了一个新视频。在Safari中,这个结束事件只会触发一次。在其他文章中,我读了一个使用暂停事件的解决方案,但这不起作用:在结束事件中设置了setMedia之后,在Safari(5.1)中未触发任何事件,因此没有结束,也没有发生暂停事件。Safari jPlayer:结束后的事件不会在第二次后触发setMedia

代码示例:

$("#jquery_jplayer_1").jPlayer({ 
    ready: function() { 
     console.log("Ready"); 
     $(this).jPlayer("setMedia", { 
      m4v: "videos/main-intro.m4v" 
     }); 
    },pause: function() { 
     console.log('Video Player Paused'); 
    } 
    ,ended: function() { 
     $("#jquery_jplayer_1").jPlayer("setMedia", { 
      m4v: "videos/outro-slide-1.m4v" 
     });  
     $("#jquery_jplayer_1").jPlayer("play"); 
     console.log("Video player Ended");  
    } 
}); 

它workes精细,控制台日志:

  • 准备

  • 视频播放暂停

  • 视频播放端

  • 视频播放暂停

  • 视频播放端

  • 等。

Safari浏览器不火setMedia之后的任何事件,它只是记录:

  • Ready

当我在结束处理程序中删除setMedia函数时,事件被正确触发。

更新:然而,在iPad上它似乎随机工作。这似乎没有任何意义。

+0

我报废了我的回答,是没有用的..你可以粘贴任何机会将有问题的代码放入小提琴中,以便我们可以测试/调试? – Lloyd 2012-02-08 13:06:39

+0

看到这个? https://github.com/happyworm/jPlayer/issues/71 – Lloyd 2012-02-09 17:48:42

+0

我会研究一下,并会在此尽快更新 – 2012-02-13 11:24:30

回答

0

这是由于Safari的HTML5视频标签实施中的一个奇怪的错误。它也可以在Safari的Windows上重现。我刚刚找到了解决此问题的一种解决方法 - 仅绑定到loadedmetadata事件并将currentTime设置为某个非零值。下面是一个例子(不要忘记,以优化它jPlayer):

<!doctype html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script> 
</head> 
<body> 
<video id="video" width="500" height="400" controls autoplay></video> 
<script> 
var src = [ 
"http://content.adfox.ru/131007/adfox/205544/865991_11.mp4", 
"http://all.rutube.ru/130627/gpmdigital/217059/805529_11.mp4" 
]; 
var curSrc = 0; 
$(function() { 
$('#video').attr("src", src[curSrc % src.length]); 
curSrc++; 
var video = $('#video').get(0); 

$('#video') 
.on('loadedmetadata', function() { 
    video.currentTime=0.01; 
    video.play(); 
}) 
.on('ended', function() { 
    console.log('ended'); 
    video.src = src[curSrc % src.length]; 
    video.load(); 
    curSrc++; 
}); 
}); 
</script> 
</body> 
</html> 

您可以在此的jsfiddle试试这个演示:http://jsfiddle.net/j2knz6sv/

相关问题