如何在javascript中创建重叠声音,即使另一个声音还在播放,一个声音会播放? 我有那个代码:
var audio = new Audio("boom.wav");
当事情发生时:
audio.play();
我该怎么办呢?
答案 0 :(得分:0)
如果您正在创建游戏,我肯定会建议使用声音库。 例如:SoundJS。当然,许多游戏开发库也都有声音管理。
一个简单的纯JS解决方案,可以将声音初始化为可能重叠的次数,然后检查声音当前是否正在播放N次并播放下一个声音初始化。
示例:
GAMEOBJECT._audio = [
new Audio('assets/snd/slide.wav'),
new Audio('assets/snd/slide.wav'),
new Audio('assets/snd/drink.wav'),
new Audio('assets/snd/drink.wav')
];
GAMEOBJECT._audio[0].pair = GAMEOBJECT._audio[1];
GAMEOBJECT._audio[2].pair = GAMEOBJECT._audio[3];
Audio.prototype.isPlaying = function () {return !this.paused;};
Audio.prototype.playSound = function () {
if (this.isPlaying()) {
this.pair.play();
}
this.play();
};
答案 1 :(得分:0)
要让声音重叠,您应该创建不同的 Audio 对象。 而不是
var audio = new Audio("boom.wav");
audio.play();
//...
audio.play();
你应该
var audio1 = new Audio("boom.wav");
audio1.play();
//...
var audio2 = new Audio("boom.wav");
audio2.play();