968 B
968 B
ECP-0078: Live <video>-First Rendering With Gesture Audio Unlock
Context
Live browser playback currently prioritizes canvas rendering. Audio can fail on first load due to autoplay policy (AudioContext was not allowed to start) and we still need a robust <video> rendering path for native controls.
Decision
In the web watcher mount path:
- Render live playback with a
<video>child in<moq-watch>first. - Start muted at the watcher signal layer for autoplay compatibility, then unlock audio on first user gesture by:
- forcing backend
muted=false,volume=1, - toggling paused state to trigger resume,
- unmuting the
<video>element.
- forcing backend
Rationale
- Preserves the
<video>UX target while handling browser autoplay constraints explicitly. - Keeps changes local to app wiring without forking upstream MoQ player internals.
Reversibility
- Remove the unlock wiring (or return to canvas renderer) to restore prior behavior.