瀏覽代碼

Merge pull request #19646 from chanon/fix-audiostream-cant-set-null-stream

Fix can't set AudioStreamPlayer stream to null
Max Hilbrunner 7 年之前
父節點
當前提交
ed61bdd2ae
共有 3 個文件被更改,包括 10 次插入11 次删除
  1. 5 5
      scene/2d/audio_stream_player_2d.cpp
  2. 5 5
      scene/3d/audio_stream_player_3d.cpp
  3. 0 1
      scene/audio/audio_player.cpp

+ 5 - 5
scene/2d/audio_stream_player_2d.cpp

@@ -259,7 +259,6 @@ void AudioStreamPlayer2D::_notification(int p_what) {
 
 
 void AudioStreamPlayer2D::set_stream(Ref<AudioStream> p_stream) {
 void AudioStreamPlayer2D::set_stream(Ref<AudioStream> p_stream) {
 
 
-	ERR_FAIL_COND(!p_stream.is_valid());
 	AudioServer::get_singleton()->lock();
 	AudioServer::get_singleton()->lock();
 
 
 	mix_buffer.resize(AudioServer::get_singleton()->thread_get_mix_buffer_size());
 	mix_buffer.resize(AudioServer::get_singleton()->thread_get_mix_buffer_size());
@@ -271,14 +270,15 @@ void AudioStreamPlayer2D::set_stream(Ref<AudioStream> p_stream) {
 		setseek = -1;
 		setseek = -1;
 	}
 	}
 
 
-	stream = p_stream;
-	stream_playback = p_stream->instance_playback();
+	if (p_stream.is_valid()) {
+		stream = p_stream;
+		stream_playback = p_stream->instance_playback();
+	}
 
 
 	AudioServer::get_singleton()->unlock();
 	AudioServer::get_singleton()->unlock();
 
 
-	if (stream_playback.is_null()) {
+	if (p_stream.is_valid() && stream_playback.is_null()) {
 		stream.unref();
 		stream.unref();
-		ERR_FAIL_COND(stream_playback.is_null());
 	}
 	}
 }
 }
 
 

+ 5 - 5
scene/3d/audio_stream_player_3d.cpp

@@ -569,7 +569,6 @@ void AudioStreamPlayer3D::_notification(int p_what) {
 
 
 void AudioStreamPlayer3D::set_stream(Ref<AudioStream> p_stream) {
 void AudioStreamPlayer3D::set_stream(Ref<AudioStream> p_stream) {
 
 
-	ERR_FAIL_COND(!p_stream.is_valid());
 	AudioServer::get_singleton()->lock();
 	AudioServer::get_singleton()->lock();
 
 
 	mix_buffer.resize(AudioServer::get_singleton()->thread_get_mix_buffer_size());
 	mix_buffer.resize(AudioServer::get_singleton()->thread_get_mix_buffer_size());
@@ -581,14 +580,15 @@ void AudioStreamPlayer3D::set_stream(Ref<AudioStream> p_stream) {
 		setseek = -1;
 		setseek = -1;
 	}
 	}
 
 
-	stream = p_stream;
-	stream_playback = p_stream->instance_playback();
+	if (p_stream.is_valid()) {
+		stream = p_stream;
+		stream_playback = p_stream->instance_playback();
+	}
 
 
 	AudioServer::get_singleton()->unlock();
 	AudioServer::get_singleton()->unlock();
 
 
-	if (stream_playback.is_null()) {
+	if (p_stream.is_valid() && stream_playback.is_null()) {
 		stream.unref();
 		stream.unref();
-		ERR_FAIL_COND(stream_playback.is_null());
 	}
 	}
 }
 }
 
 

+ 0 - 1
scene/audio/audio_player.cpp

@@ -176,7 +176,6 @@ void AudioStreamPlayer::set_stream(Ref<AudioStream> p_stream) {
 
 
 	if (p_stream.is_valid() && stream_playback.is_null()) {
 	if (p_stream.is_valid() && stream_playback.is_null()) {
 		stream.unref();
 		stream.unref();
-		ERR_FAIL_COND(stream_playback.is_null());
 	}
 	}
 }
 }