2011-07-29 19 views
2

我發現:播放音樂(在iPhone)的頁面加載後立即(使用HTML5/JS)

<!DOCTYPE html> 
<html> 
    <head> 
    <script src='jQuery.js'></script> 
     <script> 
       $(document).ready(function(){ 
        document.getElementById("asdf").play(); 
       }); 
     </script> 
    </head> 
    <body> 
     <audio src='music.m4a' id='asdf'></audio> 
    </body> 
</html> 

<!DOCTYPE html> 
<html> 
    <head> 
     <script> 
      setTimeout('document.getElementById("asdf").play();',10000); 
     </script> 
    </head> 
    <body> 
     <audio src='music.m4a' id='asdf'></audio> 
    </body> 
</html> 

不會播放音樂的iPhone(當然以上兩個作品在正常電腦上),但是寫入

<!DOCTYPE html> 
<html> 
    <body> 
     <audio src='music.m4a' id='asdf'></audio> 
     <a href='javascript:document.getElementById("asdf").play()'>dd</a> 
    </body> 
</html> 

然後點擊'dd'將會播放音樂。

我的問題是:如何在iPhone頁面加載(並「準備好」播放音樂)後自動播放音樂?

PS:我加了setInterval('if($("#asdf").attr("readyState")) console.log(1);');檢查聲音是否加載,我發現readyState在我按'dd'後立即改變。

回答

3

不允許在iPhone和iPad上自動播放視頻/音頻文件。這是Apple做出的決定。

0

HTML音頻標記具有自動播放屬性它指定是否在對象加載後立即開始播放音頻。

檢查here

1

嘗試this

<audio src='music.m4a' autoplay="autoplay" id='asdf'></audio> 
+1

不......它在iPhone上不起作用(即使它在電腦上工作) – JiminP

+1

你是對的。我在這裏找到了同樣的問題。 http://stackoverflow.com/questions/3009888/autoplay-audio-files-on-an-ipad-with-html5。 .load()方法在音頻或視頻標記上的.play()方法應該工作之前。 – tildy

+0

或者選中此項:http://roblaplaca.com/blog/2010/04/14/ipad-and-iphone-html5-video-autoplay/ – tildy

0

您需要等到音頻裝入足夠的開始播放它。

Documentation

+0

這就是爲什麼我嘗試'setTimeout('document.getElementById(「asdf」)。play();',10000);'。即使在我添加preload = 'auto''。按'dd'即可開始播放音樂。 – JiminP