video-player
Builds Divider TransportBar VideoPlayer


The code that drew it
A still frame holds a repeating animation at its first frame and a one-shot at its last, because a still of a moving thing is not reproducible. Run the gallery to review motion.
fn video_player(_window: &mut Window, cx: &mut App) -> AnyElement {
let theme = cx.theme().clone();
stack(&theme)
.w(px(440.0))
.child(
VideoPlayer::new("scene.video.frame")
.title("Screen capture")
.transport(
FixtureTransport::ready(96.0)
.position(24.0)
.state(TransportState::Playing)
.volume(0.6)
.shared(),
)
.frame(|_, cx| Some(scene_picture("Supplied frame", cx)))
.elapsed("00:24")
.remaining("-01:12")
.on_event(|_, _, _| {}),
)
.child(
Divider::new()
.id("scene.video.rule.poster")
.label("Ready, and no frames supplied"),
)
.child(
VideoPlayer::new("scene.video.poster")
.title("Release walkthrough")
.transport(FixtureTransport::ready(240.0).shared())
.poster(|_, cx| Some(scene_picture("Poster", cx)))
.elapsed("00:00")
.remaining("-04:00")
.on_event(|_, _, _| {}),
)
.into_any_element()
}