【问题标题】:jPlayer complains about valid swfPathjPlayer 抱怨有效的 swfPath
【发布时间】:2013-11-29 23:40:36
【问题描述】:

帖子末尾的主要更新

我正在使用以下代码初始化 jPlayer。它在所有现代浏览器和移动设备上运行良好。

$("#jquery_jplayer_1").jPlayer({
        supplied: "mp3",
        swfPath: "/js/jQuery.jPlayer.2.4.0",
        solution: "html,flash",
        errorAlerts: true,
        ended: function () {
            console.log('ended event fired');
            $.getScript('/js/random_show.js.php');
        }
    });

但是在 IE 8 和 IE 7 中进行测试时,我从备用 SWF 播放器中收到以下错误:

如果我打开 mysite.com/js/jQuery.jPlayer.2.4.0,SWF 加载没有问题。我曾尝试让页面静置一段时间,看看是否有帮助。它没有。

根据建议尝试使用有效的 URL,但现在出现相同的错误,并列出了完整的路径。加载 swf 后从浏览器获取的路径绝对正确。我在这里粘贴了代码,但我反对包含 URL 的帖子正文...这是新的错误消息。

另一个更新:尝试根据下面的 Josh D 建议直接链接到 jPlayer 托管的 SWF 副本。同样的错误。从 2.4.0 升级到 2.5.0。同样的错误。

我怎样才能使后备工作?

2013 年 12 月 12 日主要更新

我在此处设置了该站点的沙盒副本:http://www.itsneworleans.dreamhosters.com/shows/happy-hour 点击收听查看错误消息。

我已经取消了 HTML5 解决方案,只使用了 Flash。这允许任何浏览器触发错误。

消除错误后,Chrome 调试器报告 swf 的状态为 200,因此这不是 404 swf 问题。有人知道这个错误吗?

以下错误被解除后。

Chrome 错误信息

【问题讨论】:

    标签: javascript jquery flash jplayer


    【解决方案1】:

    我在初始化中添加了一个带有控制台输出的 jPlayer.ready() 函数。我发现它只有在播放器已经可见并且没有关于找不到 Flash 解决方案的投诉时才会触发。

    根据该结果进行更多搜索后,我找到了this post

    "检查您的样式。如果您的#jquery_jplayer_1 或其父级有 display=none, ready 事件永远不会在诸如 opera 或 火狐。我的意思是 flash 对象不能被隐藏。”

    发生的情况是 jPlayer 的 Flash 解决方案无法加载,因为我的播放器将显示设置为无。

    所以现在我通过负边距顶部来屏蔽播放器,而不是动画高度我动画边距顶部。现在一切正常。

    【讨论】:

      【解决方案2】:

      提供您的 swf 文件夹的绝对路径,例如 www.mysite.com/js/jQuery.jPlayer.2.4.0。 这将帮助您测试您提供的 swfPath 是否错误或其他。

      【讨论】:

      • 感谢您的回复。刚才试过这个。同类型的错误信息。截图见上。
      • 我添加了更新。 SWF 不是 404。当仅允许 Flash 解决方案时,创建沙盒站点以演示问题。所有浏览器都会看到错误,并且在关闭调试器后会显示 swf 的 200 状态,因此错误在其他地方......感谢任何帮助!
      【解决方案3】:

      您是否尝试使用 swfPath: "http://jplayer.org/2.5.0/js/" 代替?

      【讨论】:

      • 我添加了更新。 SWF 不是 404。当仅允许 Flash 解决方案时,创建沙盒站点以演示问题。所有浏览器都看到错误,并且在关闭调试器后显示 200 swf 状态,因此错误在其他地方......感谢任何帮助!
      【解决方案4】:

      如果直接进入浏览器中的路径有效,但它在脚本中不起作用。可以是:

      1. MIME 类型 - 检查 .swf 是否被用作 application/x-shockwave-flash
      2. 同源(跨域)策略安全性,即 .swf 文件和执行 JS 文件位于同一域中并在同一协议(HTTP 和 HTTPS)下提供服务。

      如果您愿意发布演示链接,我们应该可以对其进行调试。

      【讨论】:

      • 感谢您的回复! Crossdomain.xml 具有 allow-access-from domain="*" 可以从旧 IE 版本中的itsneworleans.com/shows/happy-hour 观察到该问题,我在 Mac 上的 Safari 中被告知。 Windows Safari 只使用 HTML 5 播放器,没有任何抱怨。剧集描述旁边有一个收听链接。
      • 好消息是,我在 Mac OS X Mountain Lion 下对其进行了测试,并且可以正常工作! See screenshot。刚刚在IE7下测试过,好像是路径问题。试着用这个http://www.jplayer.org/latest/js/Jplayer.swf替换swfPath
      • 我想 OSX Safari 正在使用没有问题的 HTML5 播放器。已使用 jPlayer 托管的 SWF 尝试了 swfPath 变量(如上所示的错误)。使用您发送的准确值会给出错误 jPlayer 2.5.0 : id='jquery_jplayer_1' : Error! jPlayer 的 Flash 回退配置不正确,或者在 jPlayer 就绪事件之前发出命令。详细信息:对象 # 没有方法 'fl_play' 检查您的 swfPath 选项以及 Jplayer.swf 是否存在。上下文:jplayer.org/latest/js/Jplayer.swf
      • 我添加了更新。 SWF 不是 404。当仅允许 Flash 解决方案时,创建沙盒站点以演示问题。所有浏览器都看到错误,并且在关闭调试器后显示 200 swf 状态,因此错误在其他地方......感谢任何帮助!
      【解决方案5】:

      只需写“../js/jQuery.jPlayer.2.4.0”而不是这个它会给你正确的解决方案。 我在 JWPlayer 中遇到了同样的问题,它的工作方式是这样的。

      【讨论】:

      • 感谢您的回复。我尝试了这条路径以及 ./ ../../ 和 ../.../../ 并且所有这些都具有相同的结果。我在上面添加了更多信息的更新:SWF 不是 404。
      • 要明确的是,Stack Overflow 授予此赏金是因为投票认为无法获得答案。这不是这篇文章中问题的答案。
      猜你喜欢
      • 2012-04-23
      • 2012-10-13
      • 1970-01-01
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-20
      • 1970-01-01
      相关资源
      最近更新 更多