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

Posted

技术标签:

【中文标题】jQuery jPlayer 在 Safari 中首次运行后无法重播【英文标题】:jQuery jPlayer can't be replayed after first run in Safari 【发布时间】:2011-02-01 18:29:20 【问题描述】:

在 Firefox 3.6.13 中配置并运行 jPlayer 2.0.0 后,一切运行顺利,相同的代码在 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 作为轨道长度),在它运行一次之后我无法重新启动它。我的代码有什么问题或 jP2 中的错误?

【问题讨论】:

可能文件正在通过 gzip 压缩提供服务,它阻止浏览器检索文件元数据? 【参考方案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 存在问题。浏览器无法正确检索 gzip 响应的元数据。

【讨论】:

这个更匹配,因为我在只提供 .ogg 和 .wav 时没有这个问题。但这与 gzip 无关,因为没有应用压缩。 嗯,当从本地副本使用它时,它工作正常。看起来你对服务的看法也是正确的。除了 gzipping 之外,这还有其他原因吗?有没有办法访问元数据,即。下载包含元数据的完整文件? 要检查标头,您可以使用显示 http 标头的浏览器,例如带有 firebug 扩展 (F12) 的 Mozilla Firefox 或 Google Chrome(右键单击任意位置 -> “检查元素” -> “资源" 选项卡。希望对您有所帮助:)【参考方案2】:

尝试在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");
        ,
    );
);

【讨论】:

【参考方案3】:

你给 swfpath 如下或使用完整的域路径 swfPath: "[http://localhost/jplayer/js/]", 提供:“webmv、ogv、m4v、oga、mp3”

【讨论】:

以上是关于jQuery jPlayer 在 Safari 中首次运行后无法重播的主要内容,如果未能解决你的问题,请参考以下文章

jPlayer 不会在 iPad 中自动播放音频文件

jPlayer 在 FF5 中无法正常工作

基于jQuery的视频和音频播放器jPlayer

使用 jQuery UI 和 jPlayer 控制音频

jQuery音乐播放器jPlayer

JQuery Jplayer play无效的问题