AbstractVirtual main media plays at every playback rate, its time always runs on its own clock.
Element sidecar videos without own host element are mounted into, layered over main media.
Undefined for controllers that play virtual media without media element (ie. slate)
Optionaloptions: VideoKeyframeOptionsAbstractloadSynchronously resolves the current live state, independent of the PlayerControllerEventType.PLAYER_CONTROLLER_LIVE_STATE_UPDATE
event stream. Callers that start listening to onEvent$ after the controller has already resolved (and possibly
emitted) a live state - e.g. right after wireEvents - need this to avoid missing that first, already-emitted state.
Returns undefined for VOD or before any playlist/manifest details are available.
Virtual main media plays backwards on its own clock, its supported playback rates don't depend on trick track, see isPlaybackRateSupported.
Sets up media time converters and wires onEvent$ events
Plays virtual main media, media without media element. Playback is driven by virtual clock resolved from wall clock, advanced by audio worklet sync tick which keeps ticking while browser tab is in background.
Subclasses implement loadMainMedia, resolving virtual main media essentials (ie. duration, frame rate).