diff --git a/src/audio/Audio.js b/src/audio/Audio.js index dae3adf64100365c227a975b02d75cb4fe99fdda..42c598f584a1b2a05ade1a85a9f7bd5ee49e4492 100644 --- a/src/audio/Audio.js +++ b/src/audio/Audio.js @@ -11,7 +11,6 @@ function Audio( listener ) { this.type = 'Audio'; - this.listener = listener; this.context = listener.context; this.gain = this.context.createGain(); diff --git a/src/audio/AudioListener.js b/src/audio/AudioListener.js index c777d5be1587c78a71a26e4d0b25ad73237f2de9..78173eeb69a10d8a88ca712cd1b37cbe7a9ec7ec 100644 --- a/src/audio/AudioListener.js +++ b/src/audio/AudioListener.js @@ -4,7 +4,6 @@ import { Vector3 } from '../math/Vector3.js'; import { Quaternion } from '../math/Quaternion.js'; -import { Clock } from '../core/Clock.js'; import { Object3D } from '../core/Object3D.js'; import { AudioContext } from './AudioContext.js'; @@ -21,8 +20,6 @@ function AudioListener() { this.filter = null; - this.timeDelta = 0; - } AudioListener.prototype = Object.assign( Object.create( Object3D.prototype ), { @@ -98,7 +95,6 @@ AudioListener.prototype = Object.assign( Object.create( Object3D.prototype ), { var scale = new Vector3(); var orientation = new Vector3(); - var clock = new Clock(); return function updateMatrixWorld( force ) { @@ -107,27 +103,21 @@ AudioListener.prototype = Object.assign( Object.create( Object3D.prototype ), { var listener = this.context.listener; var up = this.up; - this.timeDelta = clock.getDelta(); - this.matrixWorld.decompose( position, quaternion, scale ); orientation.set( 0, 0, - 1 ).applyQuaternion( quaternion ); if ( listener.positionX ) { - // code path for Chrome (see #14393) - - var endTime = this.context.currentTime + this.timeDelta; - - listener.positionX.linearRampToValueAtTime( position.x, endTime ); - listener.positionY.linearRampToValueAtTime( position.y, endTime ); - listener.positionZ.linearRampToValueAtTime( position.z, endTime ); - listener.forwardX.linearRampToValueAtTime( orientation.x, endTime ); - listener.forwardY.linearRampToValueAtTime( orientation.y, endTime ); - listener.forwardZ.linearRampToValueAtTime( orientation.z, endTime ); - listener.upX.linearRampToValueAtTime( up.x, endTime ); - listener.upY.linearRampToValueAtTime( up.y, endTime ); - listener.upZ.linearRampToValueAtTime( up.z, endTime ); + listener.positionX.setValueAtTime( position.x, this.context.currentTime ); + listener.positionY.setValueAtTime( position.y, this.context.currentTime ); + listener.positionZ.setValueAtTime( position.z, this.context.currentTime ); + listener.forwardX.setValueAtTime( orientation.x, this.context.currentTime ); + listener.forwardY.setValueAtTime( orientation.y, this.context.currentTime ); + listener.forwardZ.setValueAtTime( orientation.z, this.context.currentTime ); + listener.upX.setValueAtTime( up.x, this.context.currentTime ); + listener.upY.setValueAtTime( up.y, this.context.currentTime ); + listener.upZ.setValueAtTime( up.z, this.context.currentTime ); } else { diff --git a/src/audio/PositionalAudio.js b/src/audio/PositionalAudio.js index 833436940dc895f82baddc9978898562cf5f2ded..c37c75fc2a900b569931c2725575887fc2445deb 100644 --- a/src/audio/PositionalAudio.js +++ b/src/audio/PositionalAudio.js @@ -109,25 +109,8 @@ PositionalAudio.prototype = Object.assign( Object.create( Audio.prototype ), { orientation.set( 0, 0, 1 ).applyQuaternion( quaternion ); - if ( panner.positionX ) { - - // code path for Chrome and Firefox (see #14393) - - var endTime = this.context.currentTime + this.listener.timeDelta; - - panner.positionX.linearRampToValueAtTime( position.x, endTime ); - panner.positionY.linearRampToValueAtTime( position.y, endTime ); - panner.positionZ.linearRampToValueAtTime( position.z, endTime ); - panner.orientationX.linearRampToValueAtTime( orientation.x, endTime ); - panner.orientationY.linearRampToValueAtTime( orientation.y, endTime ); - panner.orientationZ.linearRampToValueAtTime( orientation.z, endTime ); - - } else { - - panner.setPosition( position.x, position.y, position.z ); - panner.setOrientation( orientation.x, orientation.y, orientation.z ); - - } + panner.setPosition( position.x, position.y, position.z ); + panner.setOrientation( orientation.x, orientation.y, orientation.z ); };