prevent same sound from playing multiple times

This commit is contained in:
jorsi
2020-06-04 15:52:15 -04:00
parent 54e6731748
commit a5c81f10e8
+12
View File
@@ -51,9 +51,21 @@ var AudioEngine = {
},
_playSound: function (buffer) {
if (!AudioEngine._canPlayAudio()) return;
if (AudioEngine._currentSoundEffectAudio &&
AudioEngine._currentSoundEffectAudio.source.buffer == buffer) {
return;
}
var source = AudioEngine._audioContext.createBufferSource();
source.buffer = buffer;
source.onended = function(event) {
// dereference current sound effect when finished
if (AudioEngine._currentSoundEffectAudio &&
AudioEngine._currentSoundEffectAudio.source.buffer == buffer) {
AudioEngine._currentSoundEffectAudio = null;
}
};
source.connect(AudioEngine._master);
source.start();