在 keydown() 上立即重播音频

Instantly replay audio on keydown()

我试图在键盘上按下按键时播放音频。出于某种原因,在音频文件播放完毕之前,我无法重播相同的声音。

这是我的 html 设置:

<audio id="65" src="assets/sounds/tom.wav"></audio>
<audio id="83" src="assets/sounds/tink.wav"></audio>
<audio id="68" src="assets/sounds/kick.wav"></audio>
...

和jQuery

$(document).keydown(function(e) {
var code = e.which;
$("#"+code).get(0).play();
});

所以,如果 tom.wav 是 4 秒长,我可以在键盘上敲击 "A" 任意多次。在这 4 秒过去之前它不会再次播放。

有什么想法吗?

要重新启动音频文件,您需要先暂停它,然后将其 currentTime 设置为 0,然后再播放。试试这个:

$(document).keydown(function(e) {
  var audio = $('#' + e.which)[0];
  audio.pause();
  audio.currentTime = 0;
  audio.play();
});