Track position

This commit is contained in:
mars 2022-11-20 00:33:05 -07:00
parent 452cb9c708
commit d99c64f33e
1 changed files with 12 additions and 0 deletions

View File

@ -80,6 +80,7 @@ async fn player_main(
use futures_util::StreamExt;
let mut playback_status = player.receive_playback_status_changed().await.fuse();
let mut metadata_tracker = player.receive_metadata_changed().await.fuse();
let mut position_tracker = player.receive_position_changed().await.fuse();
let mut metadata = Metadata::new(magpie, player.metadata().await?);
@ -104,6 +105,17 @@ async fn player_main(
magpie.send_json_message(0, &InMsg::PlaybackStatusChanged(status));
}
}
position = position_tracker.next() => {
let position = match position {
Some(v) => v,
None => break,
};
let position = position.get().await?;
let position = position as f32 / 1_000_000.0; // Microseconds to seconds
let progress = ProgressChanged { position };
magpie.send_json_message(0, &InMsg::ProgressChanged(progress));
}
new_metadata = metadata_tracker.next() => {
let new_metadata = match new_metadata {
Some(v) => v,