Optionalconfig: Partial<ClockPlayerControllerConfig>Virtual 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: VideoKeyframeOptionsSynchronously 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 clock time, playback rate and playing state at once, synchronously, ie. to continue from main media time of other controller. Only playback state change is emitted, no play, pause, seek or playback rate update events.
Sets up media time converters and wires onEvent$ events
Headless virtual player controller, only virtual clock without visuals. Plays at every playback rate, also backwards.
It doesn't load main media, it is wired with main media loaded by other controller, see CompositePlayerController, which drives main media time with it at playback rates its media element can't play at.