From 72fccd82c556b6f0d9678fc12eb8c331ff86d9f4 Mon Sep 17 00:00:00 2001 From: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com> Date: Sun, 22 Oct 2023 16:27:43 +0200 Subject: [PATCH] [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. --- scene/2d/audio_stream_player_2d.cpp | 2 +- scene/3d/audio_stream_player_3d.cpp | 2 +- scene/audio/audio_stream_player.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scene/2d/audio_stream_player_2d.cpp b/scene/2d/audio_stream_player_2d.cpp index 0a80467b6bd..afc5748ac59 100644 --- a/scene/2d/audio_stream_player_2d.cpp +++ b/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: { diff --git a/scene/3d/audio_stream_player_3d.cpp b/scene/3d/audio_stream_player_3d.cpp index 9f99b5ecbdf..3971e615a17 100644 --- a/scene/3d/audio_stream_player_3d.cpp +++ b/scene/3d/audio_stream_player_3d.cpp @@ -245,7 +245,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: { diff --git a/scene/audio/audio_stream_player.cpp b/scene/audio/audio_stream_player.cpp index 7f6dfd0ab8b..f3c986f9b38 100644 --- a/scene/audio/audio_stream_player.cpp +++ b/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: {