2013-12-10 33 views
1

我把這個JavaScript中的頭標記:如何讓這個JavaScript工作來觸發一個聲音文件?

<script language="javascript" type="text/javascript"> 
function playSound(soundfile) { 
document.getElementById("dummy").innerHTML= 
"<embed src=\""+soundfile+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />"; 
} 
</script> 

我把下面的代碼放在一個div一半下來的頁面:

<span id="dummy"></span> 
<a href="javascript: void(0);" onclick="playSound('singing-bowl.wav');"><img id="bowl"  
src="pics/singing-bowl.gif" height="119" width="157" /></a> 

它不工作。我不太瞭解JavaScript,但是據推測,這些工作來自我複製的源代碼。我已經嘗試使用mp3和wav版本。兩者都不適合我。

任何線索?

回答

0

你可以試試這個

function playSound(val) 
{ 
    var sound = new Audio(val); 
    sound.addEventListener('canplaythrough', function() { 
    // your call back function 
     // for example to play the sound 
     sound.play(); 
    }, false); 
} 

更有效率

var sound =null; 
var isReady = false; 
window.onload = function() 
{ 
    sound = new Audio('singing-bowl.wav'); 
    sound.addEventListener('canplaythrough', function() { 
     isReady = true; 
    }, false); 

} 
function playSound() 
{ 
    if(isReady) 
    sound.play(); 
} 
0

如果你沒有需求,以支持舊的瀏覽器,我會建議你使用HTML5,

<audio controls autoplay> 
    <source src="horse.ogg" type="audio/ogg"> 
    <source src="horse.mp3" type="audio/mpeg"> 
    Your browser does not support the audio element. 
</audio> 

而且請注意不同的瀏覽器支持不同的類型

http://www.w3schools.com/tags/tag_audio.asp