首次在Safari中运行后,jQuery jPlayer无法重播

时间:2011-02-01 18:29:20

标签: jquery jquery-plugins audio

在Firefox 3.6.13中配置并运行jPlayer 2.0.0后,everthing顺利运行,相同的代码无法在Safari 5.0.3中运行。我正在做的是创建jPlayer,监听“已结束” - 事件重启它。这是代码:

$(document).ready(function(){
    $("#loopplayer").jPlayer({
        ready: function () {$(this).jPlayer("setMedia", {mp3: "/static/audio/brokentech.mp3"});
        },
        swfPath: "/static/swf",
        supplied: "mp3",
        preload: true,
        });
    $("#loopplayer").bind($.jPlayer.event.ended, function(){
      $(this).jPlayer("play" );
     });
    });

Safari中发生的事情是:进度条将NaN显示为轨道的长度,并在运行一次后停止。当我删除事件监听器并重新加载页面时,我可以运行jPlayer一次(再次使用NaN作为tracklength),运行一次后我无法重新启动它。我的代码或jP2中的错误有什么问题吗?

3 个答案:

答案 0 :(得分:1)

看这里:

http://groups.google.com/group/jplayer/tree/browse_frm/month/2010-05/bb4306c1850108b1?rnum=71&_done=/group/jplayer/browse_frm/month/2010-05%3F

由于提供文件的方式,有些mp3有jPlayer问题。浏览器不会在gzipped响应中正确检索元数据。

答案 1 :(得分:1)

尝试在ended事件中重新设置媒体。

这适用于Safari 7.0,它只播放一次声音,并在没有黑客攻击的情况下进行后续重播尝试。

$(function() {
    $('#jp').jPlayer({
        ready: function() {
            // Set the media when jPlayer is ready.
            $(this).jPlayer("setMedia", {mp3: "/audio/demo.mp3"});
        },
        ended: function() {
            // Do it again after it finishes playing.
            $(this).jPlayer("setMedia", {mp3: "/audio/demo.mp3"});
        },
    });
});

答案 2 :(得分:0)

您将swfpath指定为以下内容或使用完整域路径 {         swfPath:“[http:// localhost / jplayer / js /]”,         提供:“webmv,ogv,m4v,oga,mp3” }