diff --git a/src/music/player.rs b/src/music/player.rs index 75a6aea..7a48058 100644 --- a/src/music/player.rs +++ b/src/music/player.rs @@ -49,13 +49,16 @@ impl AudioPlayer { tokio::spawn(async move { loop { if let Some(current_track) = current_track.lock().await.as_mut() { - if current_track.duration as u128 <= sink.lock().await.get_pos().as_millis() + let sink = sink.lock().await; + if sink.empty() + || current_track.duration as u128 <= sink.get_pos().as_millis() { if let Err(_) = tx.send(queue.lock().await.pop_front()).await { break; } } } + tokio::time::sleep(Self::WATCH_SLEEP_TIME).await; } }),