@byomakase/omakase-player
Version:
## Omakase Player - Open source JavaScript framework for building frame accurate video experiences
109 lines (108 loc) • 9.03 kB
TypeScript
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;
}