最小化时,SWFObject音频播放器无法播放

时间:2009-04-20 18:47:31

标签: javascript swfobject

我的网页上的SWFObject存在一个小问题。行为是当Flash播放器被另一个标签覆盖或最小化时,它不会开始播放音频,直到标签再次获得焦点并且可见。它使用的是来自http://code.google.com/p/swfobject/的2.1版SWFObject。为了验证此行为,请加载页面,在5秒内将其最小化,您会注意到beginPlay中的代码更改了页面的标题。音频开始播放后会发生这种情况,但在浏览器再次获得焦点之前不会启动。以下是复制问题的代码示例:

<html> 
<head> 
    <script type="text/javascript" src="swfobject.js"></script> 
    <script type="text/javascript" src="audio-player-uncompressed.js"></script> 
    <script> 
    function doLoad() {
        AudioPlayer.setup("player2.swf", { 
            width: "350px",
            animation: "no",
            autostart: "yes",
            loop: "yes",
            buffer: "5",
            initialvolume: 100,
        }); 
        AudioPlayer.embed("flashPlayer"); 
    }

    function beginPlay(){
        setTimeout(function(){
            AudioPlayer.embed("flashPlayer", {
                soundFile: "test.mp3"
            });
            document.title = "code after the flash player has executed."
        }, 5000);
    }
    </script> 
</head>
<body onload="doLoad();">
  This demonstration is to show how either WP Audio Player or SWFObject
  does not build the flash player while the browser is minimized.
  <br><br>
  <a href="javascript:beginPlay();">click this and minimize quickly.</a><br>
  <div id="flashPlayer"></div>
</body> 
</html>

1 个答案:

答案 0 :(得分:1)

这不是特定于SWFObject的问题,通常是由于浏览器处理Flash Player插件;当Flash播放器内容被隐藏或脱离屏幕时,许多浏览器会终止该过程,然后在再次显示SWF时重新初始化该SWF。见http://pipwerks.com/lab/swfobject/hide-swf/2.0/index.html

我不相信除了不隐藏SWF之外,你可以做很多事情。