Procházet zdrojové kódy

AudioLoader: Clone buffer prior to decoding to allow reuse

Geoff Whatley před 7 roky
rodič
revize
c91cad3812
1 změnil soubory, kde provedl 5 přidání a 2 odebrání
  1. 5 2
      src/loaders/AudioLoader.js

+ 5 - 2
src/loaders/AudioLoader.js

@@ -20,9 +20,12 @@ Object.assign( AudioLoader.prototype, {
 		loader.setResponseType( 'arraybuffer' );
 		loader.load( url, function ( buffer ) {
 
-			var context = AudioContext.getContext();
+			// Create a copy of the buffer. The `decodeAudioData` method
+			// detaches the buffer when complete, preventing reuse.
+			var bufferCopy = buffer.slice( 0 );
 
-			context.decodeAudioData( buffer, function ( audioBuffer ) {
+			var context = AudioContext.getContext();
+			context.decodeAudioData( bufferCopy, function ( audioBuffer ) {
 
 				onLoad( audioBuffer );
 

粤ICP备19079148号