2012-08-15 76 views
1

我知道我可以在主體中使用以下內容自動播放頁面加載時的聲音(如果嵌入到主體中),但我想動態嘗試此操作。動態播放HTML5音頻在頁面加載

我的意思是動態查找音頻文件,並使用JavaScript或JQuery播放onload。

任何人都可以幫忙嗎?

<audio preload="auto" tabindex="0" autoplay="true" loop="true"> 
    <source src="shorttones.mp3" type="audio/mpeg" /> 
    <source src="shorttones.ogg" type="audio/ogg" /> 
    Your browser does not support the audio element. 
</audio> 

我試過這個,不行。

<html> 
<head> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 
<script src="js/buzz.js" type="text/javascript"></script> 
<script type="text/javascript"> 
if (!buzz.isSupported()) { 
    alert("Your browser does not support the audio element, ogg, or mp3."); 
    return; 
} 

buzz.defaults.formats = [ 'ogg', 'mp3' ]; 
buzz.defaults.preload = 'metadata'; 

var mySound = new buzz.sound("sounds/highpitchsound"); 

mySound.play(); 
mySound.loop(); 
</script> 
</head> 
</html> 
+0

你是什麼意思是「動態」?定義並播放沒有HTML的音頻?定義HTML,然後用JavaScript來播放它? – kindohm 2012-08-15 18:22:33

+0

我的意思是動態查找音頻文件,並使用JavaScript或JQuery播放onload。 – 2012-08-15 18:24:45

+0

您可能需要將buzz.js代碼放入窗口完成加載時的事件處理程序中: window.addEventListener('load',function(){...},true); – kindohm 2012-08-15 19:41:01

回答

3

如果你的意思是打不上自動播放,這將是一個方法:

<html><body onload="playSound();"> 
<audio id="noise"></audio> 
</body> 
<script> 
function playSound(){ 
    var snd=document.getElementById('noise'); 
    canPlayMP3 = (typeof snd.canPlayType === "function" && snd.canPlayType("audio/mpeg") !== ""); 
    snd.src=canPlayMP3?'shorttones.mp3':'shorttones.ogg'; 
    snd.load(); 
    snd.play(); 
} 
</script></html> 
+0

我想單獨使用JavaScript/JQuery來做這件事。我從其他答案嘗試buzz.js,但仍然有問題。上面的 – 2012-08-15 19:35:39

+0

不使用嗡嗡聲。你試過了嗎? 'canPlayMP3'只是一個測試,以確定它應該提供什麼文件,如果這是你關心的部分。 – 2012-08-15 20:07:01

0

你可能想看看buzz.js:http://buzz.jaysalvat.com/

if (!buzz.isSupported()) { 
    alert("Your browser does not support the audio element, ogg, or mp3."); 
    return; 
} 

var sound = new buzz.sound("shorttones", { 
    formats: [ "ogg", "mp3" ] 
}); 

sound.play();