HTML5 JS同时播放多次相同的声音

Can*_*vas 4 javascript audio html5

我创建了一个非常基本的HTML5游戏,我打了一个小墙,基本上我有一个数组,这个数组填充了一个声音文件(它是一个数组,所以如果需要我可以分配更多的声音)

this.Sounds["L_Explosion1"] = new Audio("Assets/Sounds/Explosion_1.wav");
this.Sounds["L_Explosion1"].volume = 1;
this.Sounds["L_Explosion1"].load();
Run Code Online (Sandbox Code Playgroud)

当玩家按空格键时我想播放声音,所以我运行此代码

this.Sounds["L_Explosion1"].play();
Run Code Online (Sandbox Code Playgroud)

然而,如果我在播放声音之前再次按空格键它将无法播放它,我想要做的是多次播放相同的声音事件如果相同尚未完成,我将如何实现这一目标?

Tan*_*hur 7

为了同时播放声音的多个实例,您需要创建该Audio元素的新副本.一种方法是使用该.cloneNode()方法并在每次按下空格键时播放克隆的音频.

this.Sounds["L_Explosion1"].cloneNode(true).play();
Run Code Online (Sandbox Code Playgroud)

  • 每次按空格键时都会复制声音吗?有没有办法清理声音?或删除节点('已结束')? (3认同)
  • 该链接指向 XML DOM .cloneNode() 方法,该方法确实需要参数。但对于 HTML DOM .cloneNode(),该参数是可选的。请参阅:http://www.w3schools.com/jsref/met_node_clonenode.asp 但是,Firefox 最近在其 .cloneNode() 实现中切换了可选参数的默认值,因此安全的做法是始终在以下情况下提供参数:使用.cloneNode()。请参阅:https://developer.mozilla.org/en-US/docs/Web/API/Node.cloneNode (2认同)