微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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();
    });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。