我有一个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&vol=0.8&muted=false" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" style="width: 0px; height: 0px; ">
验证了mp3网址工作正常。我还验证了(使用Chrome网络)JPlayer.swf文件路径是正确的,可以通过上面的代码访问。
可能是什么原因?
答案 0 :(得分:1)
由于Chrome的PepperFlash插件,通常会发生错误“PPB_Graphics2D.PaintImageData:Rectangle is outside bounds”。一些解决方案建议禁用它。这对我没用。
经过大量搜索后,我通过下载新的jquery.jplayer.min.js解决了这个问题。不知道另一个有什么问题。
[编辑] 在开发过程中再次发生在我身上。注意结果,为了其他任何有同样问题的人的利益。我使用Chrome的调试版Flash插件对此进行了排查。该错误是因为在“swf”属性中指定的相对URL上找不到JPlayer。在jPlayer花了相当长的时间之后,看起来像是在swf错误的情况下要检查的两件事 - swf路径和JPlayer.swf的版本。