浏览代码

Audio: Prevent null source error in Audio.disconnect() (#26597)

**Problem**

Audio.disconnect() expects Audio.source is non-null and
calls Audio.source.disconnect(). But Audio.source is
initialized as null in the constructor and later it is
set in .play() or set*() methods.

So if Audio.disconnect() is called before starting to
play or setting source, it can cause an error when
attemping to call Audio.source.disconnect()

**Solution**

Add a guard in Audio.disconnect()
Takahiro 1 年之前
父节点
当前提交
6ce2492c2b
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      src/audio/Audio.js

+ 6 - 0
src/audio/Audio.js

@@ -210,6 +210,12 @@ class Audio extends Object3D {
 
 	disconnect() {
 
+		if ( this._connected === false ) {
+
+			return;
+
+		}
+
 		if ( this.filters.length > 0 ) {
 
 			this.source.disconnect( this.filters[ 0 ] );