重叠声音我javascript

时间:2016-07-24 13:46:22

标签: javascript

如何在javascript中创建重叠声音,即使另一个声音还在播放,一个声音会播放? 我有那个代码:

var audio = new Audio("boom.wav");

当事情发生时:

audio.play();

我该怎么办呢?

2 个答案:

答案 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();