Track position
This commit is contained in:
parent
452cb9c708
commit
d99c64f33e
|
@ -80,6 +80,7 @@ async fn player_main(
|
||||||
use futures_util::StreamExt;
|
use futures_util::StreamExt;
|
||||||
let mut playback_status = player.receive_playback_status_changed().await.fuse();
|
let mut playback_status = player.receive_playback_status_changed().await.fuse();
|
||||||
let mut metadata_tracker = player.receive_metadata_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?);
|
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));
|
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() => {
|
new_metadata = metadata_tracker.next() => {
|
||||||
let new_metadata = match new_metadata {
|
let new_metadata = match new_metadata {
|
||||||
Some(v) => v,
|
Some(v) => v,
|
||||||
|
|
Loading…
Reference in New Issue