0

我有一个 jquery jplayer,它的 html 版本运行良好。当我尝试将 Flash 版本加载为默认版本时,它停止工作。

当我加载页面时,Chrome 控制台显示错误“PPB_Graphics2D.PaintImageData: Rectangle is outside bounds”两次。Firefox 没有显示任何 JS 错误。

这是jQuery代码。

     $("#jquery_jplayer_1").jPlayer({
            solution:"flash, html",
            play: function() { // To avoid both jPlayers playing together.
                 $(this).jPlayer("pauseOthers");
            },
            ready: function () {
                $(this).jPlayer("setMedia", {
                     mp3: "http://test.com/music.mp3"

                  });
             },

             swfPath: "player/jplayer",
             supplied: "mp3",
             cssSelectorAncestor: "#jp-audio-container1"
   });

如果我将解决方案反转为解决方案:“html,flash”,则播放器可以正常工作。这是脚本生成的 Flash 播放器:

   <embed name="jp_flash_0" id="jp_flash_0" src="player/jplayer/Jplayer.swf" width="0" height="0" bgcolor="#000000" quality="high" flashvars="id=jquery_jplayer_1&amp;vol=0.8&amp;muted=false" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" style="width: 0px; height: 0px; ">

验证 mp3 url 工作正常。我还验证了(使用 Chrome 网络)JPlayer.swf 文件路径是正确的,并且可以从上面的代码中访问。

可能是什么原因?

4

1 回答 1

2

看起来错误“PPB_Graphics2D.PaintImageData:矩形超出范围”通常是由于 Chrome 的 PepperFlash 插件而发生的。一些解决方案建议禁用它。那对我不起作用。

经过大量搜索,我通过下载一个新的 jquery.jplayer.min.js 解决了这个问题。不知道另一个有什么问题。

[编辑]在开发过程中再次发生在我身上。记下结果,以利于其他有同样问题的人。我使用Chrome 的 Flash 插件的调试版本来解决这个问题。该错误是因为在“swf”属性中指定的相对 URL 上找不到 JPlayer。在 jPlayer 上花费了相当长的时间之后,看起来在出现 swf 错误时要检查的两件事是 - swf 路径和 JPlayer.swf 的版本。

于 2012-10-25T06:30:13.927 回答