Usage
VideoPlayer from @prepared911/ui/video-player plays a recorded video. Video is the same element without the bar. Pass copy for every label, including seekValueText and timeSeparator. Times on the ref and on onDurationChange are seconds. The clock shows m:ss, or h:mm:ss at an hour.
Playback and the control row are the same media-core and media-transport parts AudioPlayer uses. Pass playerId when this player should pause other registered players. Volume in the bar is a popover.
copy. The strings are LocalizedMessage from @prepared911/tool-localization. seekValueText receives the spoken elapsed and total. timeSeparator sits between them.playerId or track ids.blur to show the toggle. blur={true} starts blurred and resets when src changes. Snapshot and Picture-in-Picture stay disabled while blurred. Blur does not mute audio.fullscreen shows the control. The control toggles fullscreen on the player root in that element's document.controls={false} leaves the browser chrome and hides the bar.playerId to join the page-wide registry. Starting this player pauses every other registered player. Omit playerId and players do not pause each other.copy.errorTitle and a Retry button.Do
tracks when the recording has speech.copy next to the player so a translator can see every control.Don't
src, a track URL, or a snapshot data URL.The root is a named group. The picture is one tab stop when the custom bar is showing: Space and Enter toggle playback, Left and Right seek five seconds, M toggles mute, and F toggles fullscreen when that control is shown. Space on the seek slider also toggles playback. Volume opens a popover. See Accessibility.