HTML5 音频 - 在点击时重复播放声音,不管之前的迭代是否已经完成

标签 html audio html5-audio

我正在构建一个游戏,其中点击播放 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/

相关文章:

html - 如何打破两个定位的顶部元素?

audio - 如何使用 Libav API 合并多个音频文件?

python - 使用python仅在特定时间间隔静音音频文件

javascript - 有没有办法改变 WebAudio 中监听器的平移平衡?

javascript - 如何使用 javascript 或 jquery 动态添加 SVG 图形?

javascript - 将 HTML 转换为 PDF 分页

html - 如何在小屏幕上内联显示字段集文本和按钮?

audio - 比较两个音频文件并查找剪辑

html - 是否可以在 CSS 中使用 % 设置 HTML5 音频播放器的大小?

video - 需要帮助理解 HTML 5 音频/视频元数据的使用和放置