我正在构建一个游戏,其中点击播放 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();
});
想法?
最佳答案
我知道这是一个很晚的答案,我只是想,但在寻找解决方案时我发现在我的情况下最好的方法是预加载声音然后在每次我想播放它时克隆节点,这允许就算上一个还没结束我也要玩:
var sound = new Audio("click.mp3");
sound.preload = 'auto';
sound.load();
function playSound(volume) {
var click=sound.cloneNode();
click.volume=volume;
click.play();
}
关于HTML5 音频 - 在点击时重复播放声音,不管之前的迭代是否已经完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6893080/