From c641ec4f3179829e3efed85b0f9b5fb76d12e24c Mon Sep 17 00:00:00 2001 From: arabian Date: Thu, 21 Aug 2025 16:40:37 +0300 Subject: [PATCH] fix crash when seeking --- src/app.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/app.rs b/src/app.rs index af50d24..b1767c1 100644 --- a/src/app.rs +++ b/src/app.rs @@ -89,8 +89,8 @@ impl eframe::App for App { // Handle changing player position if self.player_position != self.prev_player_position { - let mut target_pos = self.player_position - 0.5; - target_pos = target_pos.clamp(0f32, self.max_player_position); + let mut target_pos = self.player_position; + target_pos = target_pos.clamp(0.0, self.max_player_position - 0.1); let target_pos_dur = core::time::Duration::from_secs_f32(target_pos); self.audio_sink.try_seek(target_pos_dur).unwrap(); @@ -105,6 +105,10 @@ impl eframe::App for App { } self.prev_player_position = self.player_position; + + if (self.max_player_position - self.player_position) <= 0.1 { + self.audio_sink.pause(); + } }); } } @@ -391,7 +395,7 @@ impl App { } let file = fs::File::open(self.current_file.display().to_string()).unwrap(); - let source = Decoder::new(file).unwrap(); + let source = Decoder::try_from(file).unwrap(); self.audio_sink.stop(); self.audio_sink.play();