summaryrefslogtreecommitdiff
path: root/scene/audio/audio_stream_player.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/audio/audio_stream_player.cpp')
-rw-r--r--scene/audio/audio_stream_player.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/scene/audio/audio_stream_player.cpp b/scene/audio/audio_stream_player.cpp
index d2fd65d3d9..43c4ce4c82 100644
--- a/scene/audio/audio_stream_player.cpp
+++ b/scene/audio/audio_stream_player.cpp
@@ -45,7 +45,6 @@ void AudioStreamPlayer::_notification(int p_what) {
Vector<Ref<AudioStreamPlayback>> playbacks_to_remove;
for (Ref<AudioStreamPlayback> &playback : stream_playbacks) {
if (playback.is_valid() && !AudioServer::get_singleton()->is_playback_active(playback) && !AudioServer::get_singleton()->is_playback_paused(playback)) {
- emit_signal(SNAME("finished"));
playbacks_to_remove.push_back(playback);
}
}
@@ -58,6 +57,9 @@ void AudioStreamPlayer::_notification(int p_what) {
active.clear();
set_process_internal(false);
}
+ if (!playbacks_to_remove.is_empty()) {
+ emit_signal(SNAME("finished"));
+ }
}
if (p_what == NOTIFICATION_EXIT_TREE) {
@@ -292,6 +294,8 @@ void AudioStreamPlayer::_validate_property(PropertyInfo &property) const {
property.hint_string = options;
}
+
+ Node::_validate_property(property);
}
void AudioStreamPlayer::_bus_layout_changed() {