2012-01-31 138 views
4

我想在每一行中創建一個帶有字符串和按鈕(播放聲音)的表格,並且每個按鈕都會播放不同的聲音。用javascript播放聲音

我想用這種方法來做到這一點:

<script> 
function EvalSound(soundobj) { 
    var thissound=document.getElementById(soundobj); 
    thissound.Play(); 
} 
</script> 

<embed src="success.wav" autostart=false width=1 height=1 id="sound1" 
enablejavascript="true"> 

,這是按鈕:

<form> 
<input type="button" value="Play Sound" onClick="EvalSound('sound1')"> 
</form> 

的問題是,我想在這裏:

<input type="button" value="Play Sound" onClick="EvalSound('sound1')"> 

寫的fil e URL而不是'sound1',可以這樣做嗎?或者我需要更改代碼中的其他東西?

編輯:

我建立這樣的腳本:

<script> 
    function EvalSound(soundobj) { 
    var embed = document.createElement('embed'); 
    embed.setAttribute('width',1); 
    embed.setAttribute('height',1); 
    embed.setAttribute('src',soundobj); 
    embed.setAttribute('autostart', false); 
    embed.setAttribute('enablejavascript', true); 
    embed.Play(); 
    } 
</script> 

,並稱之爲:

<form> 
    <input type="button" value="Play Sound" onClick="EvalSound('sound url')"> 
</form> 

,它仍然不能播放聲音。

回答

5

可以實現它如下:

指博客How to Play a Sound on Click or on MouseOver

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

在網頁

<span id="dummy"></span> 
<a href="#" onclick="playSound('URL to soundfile');">Click here to hear a sound</a> 

<p onmouseover="playSound('URL to soundfile');">Mouse over this text to hear a sound</p> 
+0

我編輯我的文章,你可以看看變化? – MTA 2012-01-31 12:12:43

+0

不要忘記檢查此頁面,因爲該解決方案刪除了​​與錨點關聯的文本:http://forum.codecall.net/topic/49572-play-sound-on-click/ – dialex 2013-03-02 14:01:11

1

注意:這不是HTML5。 您可以通過thissound.src獲取源代碼。然後,您可以將它添加到DOM中,無論您想要放置在哪個位置。

0

你可以使用JavaScript框架,使你的代碼更容易。在Scriptaculous的網頁看看:

http://madrobby.github.com/scriptaculous/sound/

據我所知,「jQuery的」沒有這麼齊全的聲音,但是,我想,就表示該插件。

然後你可以把你的聲音文件作爲鏈接或'rel'鏈接,在按鈕上放置觀察者,並用非常乾淨的HTML和一些腳本來播放它們。