我遇到了一些关于我的小型网络游戏项目的问题: 我有一些声音文件,用HTML这样给出:
<audio id="shotSound" preload="auto">
<source src="../sound/shot.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
preload =&#34; auto&#34;应该在页面init上立即加载内容吗? 现在,我需要使用javascript来触发声音(按键):
var audio = document.getElementById("shotSound");
audio.play();
这是有效的,但是如果我尝试连续拍摄或者更快(一次又一次拍摄)它会在第一次拍摄后不能拍摄。那么,如果我持有&#34;拍摄&#34;会发生什么?按钮:听到的声音就像重复一样 - 这显然是错误的。
非常欢迎任何想法/建议! 如果我不清楚,请告诉我。
谢谢
答案 0 :(得分:0)
不要将audio-tag放入HTML文档中。使用
在Javascript中预加载声音效果shotSound = new Audio();
shotSound.src = "../sound/shot.mp3";
shotSound.load();
将shotSound变量保留在范围内,因此不会进行垃圾回收。然后,当您需要播放声音时,请创建一个新的Audio对象:
new Audio("../sound/shot.mp3").play();
它将立即播放,因为声音文件已经被缓存。而且因为它是一个新的音频对象,它不会中断同时播放的其他实例。