Jelajahi Sumber

AudioContext: Added getContext() and setContext().

Mr.doob 8 tahun lalu
induk
melakukan
b97617dbb9
5 mengubah file dengan 24 tambahan dan 19 penghapusan
  1. 0 9
      rollup.config.js
  2. 1 1
      src/Three.js
  3. 19 5
      src/audio/AudioContext.js
  4. 2 2
      src/audio/AudioListener.js
  5. 2 2
      src/loaders/AudioLoader.js

+ 0 - 9
rollup.config.js

@@ -1,11 +1,3 @@
-
-var outro = `
-Object.defineProperty( exports, 'AudioContext', {
-	get: function () {
-		return exports.getAudioContext();
-	}
-});`;
-
 function glsl () {
 	return {
 		transform ( code, id ) {
@@ -42,6 +34,5 @@ export default {
 			dest: 'build/three.modules.js'
 		}
 	],
-	outro: outro,
 	sourceMap: true
 };

+ 1 - 1
src/Three.js

@@ -63,7 +63,7 @@ export { CubeCamera } from './cameras/CubeCamera.js';
 export { Camera } from './cameras/Camera.js';
 export { AudioListener } from './audio/AudioListener.js';
 export { PositionalAudio } from './audio/PositionalAudio.js';
-export { getAudioContext } from './audio/AudioContext.js';
+export { AudioContext } from './audio/AudioContext.js';
 export { AudioAnalyser } from './audio/AudioAnalyser.js';
 export { Audio } from './audio/Audio.js';
 export { VectorKeyframeTrack } from './animation/tracks/VectorKeyframeTrack.js';

+ 19 - 5
src/audio/AudioContext.js

@@ -1,13 +1,27 @@
 var context;
 
-export function getAudioContext() {
+function AudioContext() {}
 
-	if ( context === undefined ) {
+Object.assign( AudioContext, {
 
-		context = new ( window.AudioContext || window.webkitAudioContext )();
+	getContext: function () {
 
+		if ( context === undefined ) {
+
+			context = new ( window.AudioContext || window.webkitAudioContext )();
+
+		}
+
+		return context;
+
+	},
+
+	setContext: function ( value ) {
+
+		context = value;
+		
 	}
 
-	return context;
+} );
 
-}
+export { AudioContext };

+ 2 - 2
src/audio/AudioListener.js

@@ -5,7 +5,7 @@
 import { Vector3 } from '../math/Vector3';
 import { Quaternion } from '../math/Quaternion';
 import { Object3D } from '../core/Object3D';
-import { getAudioContext } from './AudioContext';
+import { AudioContext } from './AudioContext';
 
 function AudioListener() {
 
@@ -13,7 +13,7 @@ function AudioListener() {
 
 	this.type = 'AudioListener';
 
-	this.context = getAudioContext();
+	this.context = AudioContext.getContext();
 
 	this.gain = this.context.createGain();
 	this.gain.connect( this.context.destination );

+ 2 - 2
src/loaders/AudioLoader.js

@@ -1,4 +1,4 @@
-import { getAudioContext } from '../audio/AudioContext';
+import { AudioContext } from '../audio/AudioContext';
 import { FileLoader } from './FileLoader';
 import { DefaultLoadingManager } from './LoadingManager';
 
@@ -20,7 +20,7 @@ Object.assign( AudioLoader.prototype, {
 		loader.setResponseType( 'arraybuffer' );
 		loader.load( url, function ( buffer ) {
 
-			var context = getAudioContext();
+			var context = AudioContext.getContext();
 
 			context.decodeAudioData( buffer, function ( audioBuffer ) {