HTML5音频 – 在点击时重复播放声音,无论以前的迭代是否完成

我正在建立一个wav文件点击的游戏 – 在这种情况下,这是一个枪声“爆炸”.

问题是如果我快速点击,每次点击都不会播放一次声音 – 就好像在播放声音时忽略了点击,一旦声音完成,它再次开始听到点击.延迟时间似乎大概是一秒钟,所以你知道有人每秒点击4或5次,我想要5个爆炸声,而不是1次.

这是我的HTML

<audio id="gun_sound" preload>
    <source src="http://www.seancannon.com/_test/audio/gun_bang.wav" />
</audio>

这是我的JS:

$('#' + CANVAS_ID).bind(_click,function() {
    document.getElementById('gun_sound').play();
    adj_game_data(GAME_DATA_AMMO_ID,-1);
    check_ammo();
});

想法?

解决方法

一旦gun_bang.wav被预加载,您可以动态地创建附加该声音的新元素,播放音频,然后在音频完成后将其删除.
function gun_bang(){
        var audio = document.createElement("audio");
        audio.src = "http://www.seancannon.com/_test/audio/gun_bang.wav";
        audio.addEventListener("ended",function () {
            document.removeChild(this);
        },false);
        audio.play();   
    }

    $('#' + CANVAS_ID).bind(_click,function() {
        gun_bang();
        adj_game_data(GAME_DATA_AMMO_ID,-1);
        check_ammo();
    });

相关文章

HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码