我正在建立一个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(); });