用javascript播放声音

时间:2012-01-31 11:42:15

标签: javascript html html5

我想在每一行创建一个包含字符串和按钮(播放声音)的表格,每个按钮播放不同的声音。

我想用这种方法做到这一点:

<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')">

写入文件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>

它仍然没有发出声音。

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

注意:这不是HTML5。 您可以使用thissound.src获取来源。然后,您可以将它添加到DOM中,无论您想将它放在哪个位置。

答案 2 :(得分:0)

您可以使用javascript框架来简化代码。看一下Scriptaculous页面:

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

据我所知,'jQuery'的声音不是很好,不过,我想有插件可供选择。

然后你可以把你的声音文件作为链接或'rel'链接,在按钮上放置观察者并用非常干净的HTML和一些脚本来播放它们。