Make a copy before using audio buffer

This commit is contained in:
Paul Kaplan 2017-06-14 09:10:35 -04:00
parent 19e1136e3b
commit 5c4a88b739

View file

@ -232,12 +232,15 @@ class AudioEngine {
let loaderPromise = null;
// Make a copy of the buffer because decoding detaches the original buffer
var bufferCopy = sound.data.buffer.slice(0);
switch (sound.format) {
case '':
loaderPromise = Tone.context.decodeAudioData(sound.data.buffer);
loaderPromise = Tone.context.decodeAudioData(bufferCopy);
break;
case 'adpcm':
loaderPromise = (new ADPCMSoundDecoder()).decode(sound.data.buffer);
loaderPromise = (new ADPCMSoundDecoder()).decode(bufferCopy);
break;
default:
return log.warn('unknown sound format', sound.format);