在Javascript上立即播放声音(无需等待完成)

时间:2016-01-28 03:29:27

标签: javascript jquery audio

我通过带有html和.play的键部分地实现了播放声音。然而,它等待轨道完成,并且不允许我在每次点击时立即播放。但是我想在每次按下它时立即触发声音。

<audio id=soundId1>
  <source src=sound/Saaa.wav>
</audio>
<audio id=soundId2>
  <source src=sound/Baaa.wav>
</audio>
$(document).ready(function() {

var sound = {
    65 : 'soundId1',
    23 : 'soundId2'
};

document.onkeydown = function(e) {
    var soundId = sound[e.keyCode];

    if (soundId) document.getElementById(soundId).play();
    else console.log("key not mapped : code is", e.keyCode);

}

有没有办法用上述方法实现它而不使用任何库?

我也查看了howler.js(我不知道它是否正确使用)但我真的不明白如何在字典中添加多个轨道。我理解如何将文件放入声音字典但是如何调用它并将其链接到上面的keyCode系统?或者我应该为每个声音单独添加new Howl吗?

实现它的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

这可能有效,但我没试过:

function Sound(){
    this.src = ""
}

function playSound(source){
    var sound = new Sound();
    sound.src = source;
    sound.play()
}

创建一个新的声音实例,而不是覆盖前一个声音实例。