Controls + live state returned by useVideoPlayer. Mirrors AudioPlayerHandle on the shared subset so callers only ever learn one shape.
interface VideoPlayerHandleTotal duration (seconds) once the element has parsed the blob.
Resolve on the next terminal transition (finished / paused /
idle). Reject on transitions to "error". Triggers play()
when called.
Seek to an absolute timestamp in seconds.