Browse Source

[Audio] Fix pausing stream on entering tree

The paused notifications are only sent when pause status is changed,
this ensures that streams that are non-processing do not play when added
to the tree. Also ensures that the `process_mode` property applies
generally.

(cherry picked from commit 72fccd82c556b6f0d9678fc12eb8c331ff86d9f4)
A Thousand Ships 1 năm trước cách đây
mục cha
commit
578fa8603d

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

@@ -43,7 +43,7 @@ void AudioStreamPlayer2D::_notification(int p_what) {
 			if (autoplay && !Engine::get_singleton()->is_editor_hint()) {
 				play();
 			}
-			set_stream_paused(false);
+			set_stream_paused(!can_process());
 		} break;
 
 		case NOTIFICATION_EXIT_TREE: {

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

@@ -244,7 +244,7 @@ void AudioStreamPlayer3D::_notification(int p_what) {
 			if (autoplay && !Engine::get_singleton()->is_editor_hint()) {
 				play();
 			}
-			set_stream_paused(false);
+			set_stream_paused(!can_process());
 		} break;
 
 		case NOTIFICATION_EXIT_TREE: {

+ 1 - 1
scene/audio/audio_stream_player.cpp

@@ -40,7 +40,7 @@ void AudioStreamPlayer::_notification(int p_what) {
 			if (autoplay && !Engine::get_singleton()->is_editor_hint()) {
 				play();
 			}
-			set_stream_paused(false);
+			set_stream_paused(!can_process());
 		} break;
 
 		case NOTIFICATION_INTERNAL_PROCESS: {