2016-07-24 2 views
-2

Как создать перекрывающийся звук в javascript, так что один звук будет воспроизводиться, даже если он еще играет? У меня есть этот код:Перекрытие звука i javascript

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

и когда что-то происходит:

audio.play(); 

Что я должен сделать, чтобы сделать это?

+1

Я не понимаю вашего вопроса. Что вы подразумеваете под перекрытием? Можете ли вы изменить свой вопрос и уточнить, что вы пытаетесь сделать? – Xufox

+0

Что не работает? В чем проблема? Где вы пытаетесь воспроизвести второй звук? Вы только разместили код для воспроизведения одного звука. – Xufox

+0

@Xufox Я сделал это. Надеюсь, это прояснит все. – daniel098

ответ

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(); 
}; 
Смежные вопросы