UNPKG

@byomakase/omakase-player

Version:

## Omakase Player - Open source JavaScript framework for building frame accurate video experiences

109 lines (108 loc) 9.03 kB
import { BehaviorSubject, Observable } from 'rxjs'; import { VideoApi } from '../api'; import { AudioLoadedEvent, AudioPeakProcessorMessageEvent, AudioSwitchedEvent, AudioUpdatedEvent, Destroyable, MainAudioChangeEvent, MainAudioInputSoloMuteEvent, OmpAudioTrack, OmpAudioTrackCreateType, OmpNamedEventEventName, SidecarAudioChangeEvent, SidecarAudioCreateEvent, SidecarAudioInputSoloMuteEvent, SidecarAudioLoadedEvent, SidecarAudioPeakProcessorMessageEvent, SidecarAudioRemoveEvent, SidecarAudiosChangeEvent, SidecarAudioVolumeChangeEvent, SubtitlesCreateEvent, SubtitlesEvent, SubtitlesLoadedEvent, SubtitlesVttTrack, ThumnbailVttUrlChangedEvent, VideoHelpMenuChangeEvent, VolumeChangeEvent } from '../types'; import { VideoControllerConfig } from './video-controller'; import { AudioMeterStandard, BufferedTimespan, MediaElementPlaybackState, OmpAudioRouterState, OmpAudioRoutingConnection, OmpAudioRoutingInputType, OmpMainAudioInputSoloMuteState, OmpMainAudioState, OmpSidecarAudioInputSoloMuteState, OmpSidecarAudioState, Video, VideoLoadOptions, VideoLoadOptionsInternal } from './model'; import { OmpAudioRouter } from './audio-router'; import { SidecarAudioApi } from '../api/sidecar-audio-api'; import { OmpAudioEffectFactory, OmpAudioEffectFilter, OmpAudioEffectParam, OmpAudioEffectsGraphDef } from '../audio'; import { OmpAudioEffectsGraphConnection } from '../audio/model'; /** * @internal */ export interface VideoControllerApi extends VideoApi, Destroyable { onAudioLoaded$: BehaviorSubject<AudioLoadedEvent | undefined>; onAudioSwitched$: Observable<AudioSwitchedEvent>; onAudioUpdated$: Observable<AudioUpdatedEvent>; onAudioOutputVolumeChange$: Observable<VolumeChangeEvent>; onSubtitlesLoaded$: BehaviorSubject<SubtitlesLoadedEvent | undefined>; onPlaybackState$: Observable<MediaElementPlaybackState>; onSubtitlesCreate$: Observable<SubtitlesCreateEvent>; onSubtitlesRemove$: Observable<SubtitlesEvent>; onSubtitlesShow$: Observable<SubtitlesEvent>; onSubtitlesHide$: Observable<SubtitlesEvent>; onHelpMenuChange$: Observable<VideoHelpMenuChangeEvent>; onThumbnailVttUrlChanged$: Observable<ThumnbailVttUrlChangedEvent>; onActiveNamedEventStreamsChange$: Observable<OmpNamedEventEventName[]>; loadVideoInternal(sourceUrl: string, options: VideoLoadOptions | undefined, optionsInternal: VideoLoadOptionsInternal): Observable<Video>; getConfig(): VideoControllerConfig; getPlaybackState(): MediaElementPlaybackState | undefined; getBufferedTimespans(): BufferedTimespan[]; createSubtitlesVttTrack(subtitlesVttTrack: SubtitlesVttTrack): Observable<SubtitlesVttTrack>; removeSubtitlesTrack(id: string): Observable<void>; removeAllSubtitlesTracks(): Observable<void>; getSubtitlesTracks(): SubtitlesVttTrack[]; getActiveSubtitlesTrack(): SubtitlesVttTrack | undefined; showSubtitlesTrack(id: string): Observable<void>; hideSubtitlesTrack(id: string): Observable<void>; getAudioContext(): AudioContext; getAudioOutputNode(): AudioNode; getSidecarAudiosOutputNode(): AudioNode; setAudioOutputVolume(volume: number): Observable<void>; getAudioOutputVolume(): number; setAudioOutputMuted(muted: boolean): Observable<void>; toggleAudioOutputMuteUnmute(): Observable<void>; isAudioOutputMuted(): boolean; muteAudioOutput(): Observable<void>; unmuteAudioOutput(): Observable<void>; onMainAudioChange$: Observable<MainAudioChangeEvent | undefined>; onMainAudioPeakProcessorMessage$: Observable<AudioPeakProcessorMessageEvent>; onMainAudioInputSoloMute$: Observable<MainAudioInputSoloMuteEvent | undefined>; getMainAudioNode(): AudioNode | undefined; getMainAudioState(): OmpMainAudioState | undefined; getMainAudioRouter(): OmpAudioRouter | undefined; getMainAudioInputSoloMuteState(): OmpMainAudioInputSoloMuteState | undefined; getMainAudioRouterInitialRoutingConnections(): OmpAudioRoutingConnection[] | undefined; setMainAudioRouterInitialRoutingConnections(connections: OmpAudioRoutingConnection[]): Observable<void>; createMainAudioRouter(inputsNumber: number, outputsNumber?: number, defaultMatrix?: OmpAudioRoutingConnection[][]): Observable<OmpAudioRouterState>; createMainAudioRouterWithOutputsResolver(inputsNumber: number, outputsNumberResolver: (maxChannelCount: number) => number, defaultMatrix?: OmpAudioRoutingConnection[][]): Observable<OmpAudioRouterState>; createMainAudioPeakProcessor(audioMeterStandard?: AudioMeterStandard): Observable<Observable<AudioPeakProcessorMessageEvent>>; updateMainAudioRouterConnections(connections: OmpAudioRoutingConnection[]): Observable<void>; setMainAudioEffectsGraphs(effectsGraphDef: OmpAudioEffectsGraphDef, effectsGraphConnection: OmpAudioEffectsGraphConnection): Observable<void>; removeMainAudioEffectsGraphs(effectsGraphConnection: OmpAudioEffectsGraphConnection): Observable<void>; setMainAudioEffectsParams(param: OmpAudioEffectParam, effectGraphConnection: OmpAudioEffectsGraphConnection, filter?: OmpAudioEffectFilter): Observable<void>; toggleMainAudioRouterSolo(routingPath: OmpAudioRoutingInputType): Observable<void>; toggleMainAudioRouterMute(routingPath: OmpAudioRoutingInputType): Observable<void>; onSidecarAudioCreate$: Observable<SidecarAudioCreateEvent>; onSidecarAudioLoaded$: Observable<SidecarAudioLoadedEvent>; onSidecarAudioRemove$: Observable<SidecarAudioRemoveEvent>; onSidecarAudioChange$: Observable<SidecarAudioChangeEvent>; onSidecarAudioVolumeChange$: Observable<SidecarAudioVolumeChangeEvent>; onSidecarAudioPeakProcessorMessage$: Observable<SidecarAudioPeakProcessorMessageEvent>; onSidecarAudioInputSoloMute$: Observable<SidecarAudioInputSoloMuteEvent>; onSidecarAudiosChange$: Observable<SidecarAudiosChangeEvent>; getSidecarAudios(): SidecarAudioApi[]; getSidecarAudio(id: string): SidecarAudioApi | undefined; getSidecarAudioState(id: string): OmpSidecarAudioState | undefined; getSidecarAudioStates(): OmpSidecarAudioState[]; getSidecarAudioInputSoloMuteState(id: string): OmpSidecarAudioInputSoloMuteState | undefined; getSidecarAudioInputSoloMuteStates(): OmpSidecarAudioInputSoloMuteState[]; getSidecarAudioRouterInitialRoutingConnections(id: string): OmpAudioRoutingConnection[] | undefined; setSidecarAudioRouterInitialRoutingConnections(id: string, connections: OmpAudioRoutingConnection[]): Observable<void>; createSidecarAudioTrack(track: OmpAudioTrackCreateType): Observable<OmpAudioTrack>; createSidecarAudioTracks(tracks: OmpAudioTrackCreateType[]): Observable<OmpAudioTrack[]>; removeSidecarAudioTracks(ids: string[]): Observable<void>; removeAllSidecarAudioTracks(): Observable<void>; getSidecarAudioTracks(): OmpAudioTrack[]; getActiveSidecarAudioTracks(): OmpAudioTrack[]; activateSidecarAudioTracks(ids: string[] | undefined, deactivateOthers?: boolean | undefined): Observable<void>; deactivateSidecarAudioTracks(ids: string[] | undefined): Observable<void>; setSidecarVolume(volume: number, ids: string[] | undefined): Observable<void>; setSidecarMuted(muted: boolean, ids: string[] | undefined): Observable<void>; muteSidecar(ids: string[] | undefined): Observable<void>; unmuteSidecar(ids: string[] | undefined): Observable<void>; createSidecarAudioRouter(sidecarAudioTrackId: string, inputsNumber?: number, outputsNumber?: number, defaultMatrix?: OmpAudioRoutingConnection[][]): Observable<OmpAudioRouterState>; updateSidecarAudioRouterConnections(sidecarAudioTrackId: string, connections: OmpAudioRoutingConnection[]): Observable<void>; setSidecarAudioEffectsGraph(sidecarAudioTrackId: string, effectsGraphDef: OmpAudioEffectsGraphDef, effectsGraphConnection: OmpAudioEffectsGraphConnection): Observable<void>; removeSidecarAudioEffectsGraphs(sidecarAudioTrackId: string, effectsGraphConnection: OmpAudioEffectsGraphConnection): Observable<void>; setSidecarAudioEffectsParams(sidecarAudioTrackId: string, param: OmpAudioEffectParam, effectGraphConnection: OmpAudioEffectsGraphConnection, filter?: OmpAudioEffectFilter): Observable<void>; createSidecarAudioPeakProcessor(sidecarAudioTrackId: string, audioMeterStandard?: AudioMeterStandard): Observable<Observable<AudioPeakProcessorMessageEvent>>; exportMainAudioTrackToSidecar(mainAudioTrackId: string): Observable<OmpAudioTrack>; exportMainAudioTracksToSidecar(mainAudioTrackIds: string[]): Observable<OmpAudioTrack[]>; toggleSidecarAudioRouterSolo(sidecarAudioTrackId: string, routingPath: OmpAudioRoutingInputType): Observable<void>; toggleSidecarAudioRouterMute(sidecarAudioTrackId: string, routingPath: OmpAudioRoutingInputType): Observable<void>; getThumbnailVttUrl(): string | undefined; loadThumbnailVttUrl(thumbnailVttUrl: string): Observable<void>; isPiPSupported(): boolean; registerAudioEffect(effectType: string, effectFactory: OmpAudioEffectFactory): void; }