Pārlūkot izejas kodu

AudioLoader: Fix race condition with loading manager. (#33378)

Michael Herzog 3 dienas atpakaļ
vecāks
revīzija
36124744b3
1 mainītis faili ar 11 papildinājumiem un 1 dzēšanām
  1. 11 1
      src/loaders/AudioLoader.js

+ 11 - 1
src/loaders/AudioLoader.js

@@ -60,11 +60,21 @@ class AudioLoader extends Loader {
 				const bufferCopy = buffer.slice( 0 );
 
 				const context = AudioContext.getContext();
+
+				const decodeUrl = url + '#decode';
+				scope.manager.itemStart( decodeUrl ); // prevent loading manager from completing too early, see #33378
+
 				context.decodeAudioData( bufferCopy, function ( audioBuffer ) {
 
 					onLoad( audioBuffer );
+					scope.manager.itemEnd( decodeUrl );
+
+				} ).catch( function ( e ) {
+
+					handleError( e );
+					scope.manager.itemEnd( decodeUrl );
 
-				} ).catch( handleError );
+				} );
 
 			} catch ( e ) {
 

粤ICP备19079148号