From c03c35f1c95be0b70b1f6986a0da10d3b7ce7b31 Mon Sep 17 00:00:00 2001 From: Mark <> Date: Fri, 25 Oct 2024 20:31:48 +0200 Subject: [PATCH] fix playback bug --- musicdb-lib/src/player/playback_rs.rs | 33 ++++++++++++--------------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/musicdb-lib/src/player/playback_rs.rs b/musicdb-lib/src/player/playback_rs.rs index b324edd..4008f21 100644 --- a/musicdb-lib/src/player/playback_rs.rs +++ b/musicdb-lib/src/player/playback_rs.rs @@ -88,28 +88,25 @@ impl PlayerBackend for PlayerBackendPlaybackRs { } fn next(&mut self, play: bool, _load_duration: bool) { self.pause(); + self.player.stop(); self.player.skip(); self.current = self.next.take(); - if self.player.has_current_song() { - self.player.set_playing(play); - } else { - if let Some((id, song, _)) = &self.current { - if let Some(song) = song { - if let Err(e) = self.player.play_song_now(song, None) { - if let Some(s) = &self.command_sender { - s.send(Command::ErrorInfo( - format!("Couldn't play song #{id}!"), - format!("Error: {e}"), - )) - .unwrap(); - s.send(Command::NextSong).unwrap(); - } - } else { - self.player.set_playing(play); + if let Some((id, song, _)) = &self.current { + if let Some(song) = song { + if let Err(e) = self.player.play_song_now(song, None) { + if let Some(s) = &self.command_sender { + s.send(Command::ErrorInfo( + format!("Couldn't play song #{id}!"), + format!("Error: {e}"), + )) + .unwrap(); + s.send(Command::NextSong).unwrap(); } - } else if let Some(s) = &self.command_sender { - s.send(Command::NextSong).unwrap(); + } else { + self.player.set_playing(play); } + } else if let Some(s) = &self.command_sender { + s.send(Command::NextSong).unwrap(); } } }