mirror of
https://github.com/godotengine/godot.git
synced 2025-11-01 22:21:18 +00:00
Fix audio player not resetting after wav finishes
This commit is contained in:
parent
05248535f7
commit
daa62ccaa3
2 changed files with 16 additions and 12 deletions
|
|
@ -105,6 +105,8 @@ void AudioStreamEditor::_audio_changed() {
|
|||
|
||||
void AudioStreamEditor::_play() {
|
||||
if (_player->is_playing()) {
|
||||
// '_pausing' variable indicates that we want to pause the audio player, not stop it. See '_on_finished()'.
|
||||
_pausing = true;
|
||||
_player->stop();
|
||||
_play_button->set_icon(get_theme_icon("MainPlay", "EditorIcons"));
|
||||
set_process(false);
|
||||
|
|
@ -125,10 +127,13 @@ void AudioStreamEditor::_stop() {
|
|||
|
||||
void AudioStreamEditor::_on_finished() {
|
||||
_play_button->set_icon(get_theme_icon("MainPlay", "EditorIcons"));
|
||||
if (_current == _player->get_stream()->get_length()) {
|
||||
if (!_pausing) {
|
||||
_current = 0;
|
||||
_indicator->update();
|
||||
} else {
|
||||
_pausing = false;
|
||||
}
|
||||
set_process(false);
|
||||
}
|
||||
|
||||
void AudioStreamEditor::_draw_indicator() {
|
||||
|
|
@ -194,8 +199,6 @@ void AudioStreamEditor::_bind_methods() {
|
|||
|
||||
AudioStreamEditor::AudioStreamEditor() {
|
||||
set_custom_minimum_size(Size2(1, 100) * EDSCALE);
|
||||
_current = 0;
|
||||
_dragging = false;
|
||||
|
||||
_player = memnew(AudioStreamPlayer);
|
||||
_player->connect("finished", callable_mp(this, &AudioStreamEditor::_on_finished));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue