UNPKG

@byomakase/omakase-player

Version:

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

173 lines (172 loc) • 10.2 kB
import { VideoControllerApi } from './video-controller-api'; import { BehaviorSubject, Observable } from 'rxjs'; import { AudioLoadedEvent, AudioPeakProcessorMessageEvent, AudioSwitchedEvent, HelpMenuGroup, MainAudioChangeEvent, OmpAudioTrack, OmpNamedEvent, OmpNamedEventEventName, SidecarAudioChangeEvent, SidecarAudioCreateEvent, SidecarAudioPeakProcessorMessageEvent, SidecarAudioRemoveEvent, SubtitlesCreateEvent, SubtitlesEvent, SubtitlesLoadedEvent, SubtitlesVttTrack, ThumnbailVttUrlChangedEvent, VideoBufferingEvent, VideoEndedEvent, VideoErrorEvent, VideoFullscreenChangeEvent, VideoHelpMenuChangeEvent, VideoLoadedEvent, VideoLoadingEvent, VideoPlaybackRateEvent, VideoPlayEvent, VideoSafeZoneChangeEvent, VideoSeekedEvent, VideoSeekingEvent, VideoTimeChangeEvent, VideoVolumeEvent, VideoWindowPlaybackStateChangeEvent } from '../types'; import { AudioInputOutputNode, AudioMeterStandard, BufferedTimespan, OmpAudioRouterState, OmpMainAudioState, OmpSidecarAudioState, PlaybackState, Video, VideoLoadOptions, VideoLoadOptionsInternal, VideoSafeZone, VideoWindowPlaybackState } from './model'; import { VideoController, VideoControllerConfig } from './video-controller'; import Hls from 'hls.js'; import { OmpAudioRouter } from './audio-router'; import { SidecarAudioApi } from '../api/sidecar-audio-api'; export declare class DetachedVideoController implements VideoControllerApi { private readonly _proxyId; private readonly _handshakeChannel; private readonly _videoController; private readonly _onConnectSuccess$; private _messageChannel; private _disconnecting; private _connectionRetryInterval; private _maxConnectionAttempts; private _heartbeatInterval; private _heartbeatTimeout; private _maxHeartbeatTimeouts; private _heartbeatTimeoutNumber; private _outboundLatest; private _inboundLatest; private _handshakeChannelBreaker$; private _messageChannelBreaker$; private _destroyed$; constructor(videoController: VideoController); private startConnectLoop; private startHeartbeatLoop; private sendHeartBeat; private disconnect; protected initHeartbeatWatchdog(): void; private openMessageChannel; private isPermissionsCheck; destroy(): void; get onVideoLoaded$(): Observable<VideoLoadedEvent | undefined>; get onVideoLoading$(): Observable<VideoLoadingEvent>; get onPlay$(): Observable<VideoPlayEvent>; get onPause$(): Observable<VideoPlayEvent>; get onVideoTimeChange$(): Observable<VideoTimeChangeEvent>; get onSeeking$(): Observable<VideoSeekingEvent>; get onSeeked$(): Observable<VideoSeekedEvent>; get onBuffering$(): Observable<VideoBufferingEvent>; get onEnded$(): Observable<VideoEndedEvent>; get onAudioSwitched$(): Observable<AudioSwitchedEvent>; get onPlaybackState$(): Observable<PlaybackState>; get onPlaybackRateChange$(): Observable<VideoPlaybackRateEvent>; get onHelpMenuChange$(): Observable<VideoHelpMenuChangeEvent>; get onVideoWindowPlaybackStateChange$(): Observable<VideoWindowPlaybackStateChangeEvent>; get onVideoError$(): Observable<VideoErrorEvent>; get onVolumeChange$(): Observable<VideoVolumeEvent>; get onFullscreenChange$(): Observable<VideoFullscreenChangeEvent>; get onVideoSafeZoneChange$(): Observable<VideoSafeZoneChangeEvent>; get onAudioLoaded$(): BehaviorSubject<AudioLoadedEvent | undefined>; get onSubtitlesLoaded$(): BehaviorSubject<SubtitlesLoadedEvent | undefined>; get onSubtitlesCreate$(): Observable<SubtitlesCreateEvent>; get onSubtitlesHide$(): Observable<SubtitlesEvent>; get onSubtitlesRemove$(): Observable<SubtitlesEvent>; get onSubtitlesShow$(): Observable<SubtitlesEvent>; get onThumbnailVttUrlChanged$(): Observable<ThumnbailVttUrlChangedEvent>; get onActiveNamedEventStreamsChange$(): Observable<OmpNamedEventEventName[]>; get onNamedEvent$(): Observable<OmpNamedEvent>; get onMainAudioChange$(): Observable<MainAudioChangeEvent | undefined>; get onMainAudioPeakProcessorMessage$(): Observable<AudioPeakProcessorMessageEvent>; get onSidecarAudioCreate$(): Observable<SidecarAudioCreateEvent>; get onSidecarAudioRemove$(): Observable<SidecarAudioRemoveEvent>; get onSidecarAudioChange$(): Observable<SidecarAudioChangeEvent>; get onSidecarAudioPeakProcessorMessage$(): Observable<SidecarAudioPeakProcessorMessageEvent>; addSafeZone(videoSafeZone: VideoSafeZone): Observable<VideoSafeZone>; appendHelpMenuGroup(helpMenuGroup: HelpMenuGroup): Observable<void>; calculateFrameToTime(frameNumber: number): number; calculateTimeToFrame(time: number): number; clearSafeZones(): Observable<void>; getSafeZones(): VideoSafeZone[]; formatToTimecode(time: number): string; getAudioTracks(): any[]; getBufferedTimespans(): BufferedTimespan[]; getActiveAudioTrack(): any; getCurrentFrame(): number; getCurrentTime(): number; getCurrentTimecode(): string; getDuration(): number; getFrameRate(): number; getHTMLVideoElement(): HTMLVideoElement; getAudioContext(): AudioContext; getMainAudioRouter(): OmpAudioRouter | undefined; getHelpMenuGroups(): HelpMenuGroup[]; getPlaybackRate(): number; getPlaybackState(): PlaybackState | undefined; getTotalFrames(): number; getVideo(): Video | undefined; getVideoLoadOptions(): VideoLoadOptions | undefined; getVolume(): number; isFullscreen(): boolean; isMuted(): boolean; isPaused(): boolean; isPlaying(): boolean; isSeeking(): boolean; isVideoLoaded(): boolean; loadVideoInternal(sourceUrl: string, frameRate: number | string, options: VideoLoadOptions | undefined, optionsInternal: VideoLoadOptionsInternal): Observable<Video>; loadVideo(sourceUrl: string, frameRate: number | string, options?: VideoLoadOptions): Observable<Video>; reloadVideo(): Observable<Video>; mute(): Observable<void>; parseTimecodeToFrame(timecode: string): number; parseTimecodeToTime(timecode: string): number; pause(): Observable<void>; play(): Observable<void>; prependHelpMenuGroup(helpMenuGroup: HelpMenuGroup): Observable<void>; clearHelpMenuGroups(): Observable<void>; removeSafeZone(id: string): Observable<void>; seekFromCurrentFrame(framesCount: number): Observable<boolean>; seekFromCurrentTime(timeAmount: number): Observable<boolean>; seekNextFrame(): Observable<boolean>; seekPreviousFrame(): Observable<boolean>; seekToFrame(frame: number): Observable<boolean>; seekToPercent(percent: number): Observable<boolean>; seekToEnd(): Observable<boolean>; seekToTime(time: number): Observable<boolean>; seekToTimecode(timecode: string): Observable<boolean>; setActiveAudioTrack(id: string): Observable<void>; setPlaybackRate(playbackRate: number): Observable<void>; setVolume(volume: number): Observable<void>; toggleFullscreen(): Observable<void>; toggleMuteUnmute(): Observable<void>; togglePlayPause(): Observable<void>; unmute(): Observable<void>; getVideoWindowPlaybackState(): VideoWindowPlaybackState; isDetachable(): boolean; canDetach(): boolean; detachVideoWindow(): Observable<void>; canAttach(): boolean; attachVideoWindow(): Observable<void>; createSubtitlesVttTrack(subtitlesVttTrack: SubtitlesVttTrack): Observable<SubtitlesVttTrack | undefined>; getActiveSubtitlesTrack(): SubtitlesVttTrack | undefined; getSubtitlesTracks(): SubtitlesVttTrack[]; hideSubtitlesTrack(id: string): Observable<void>; removeAllSubtitlesTracks(): Observable<void>; removeSubtitlesTrack(id: string): Observable<void>; showSubtitlesTrack(id: string): Observable<void>; createMainAudioRouter(inputsNumber: number, outputsNumber?: number): Observable<OmpAudioRouterState>; createMainAudioRouterWithOutputsResolver(inputsNumber: number, outputsNumberResolver: (maxChannelCount: number) => number): Observable<OmpAudioRouterState>; createMainAudioPeakProcessor(audioMeterStandard?: AudioMeterStandard): Observable<Observable<AudioPeakProcessorMessageEvent>>; getMainAudioSourceNode(): AudioNode; getMainAudioState(): OmpMainAudioState | undefined; routeMainAudioRouterNodes(newAudioInputOutputNodes: AudioInputOutputNode[]): Observable<void>; getSidecarAudios(): SidecarAudioApi[]; getSidecarAudio(id: string): SidecarAudioApi | undefined; getSidecarAudioStates(): OmpSidecarAudioState[]; createSidecarAudioTrack(track: Partial<OmpAudioTrack>): Observable<OmpAudioTrack>; createSidecarAudioTracks(tracks: Partial<OmpAudioTrack>[]): Observable<OmpAudioTrack[]>; activateSidecarAudioTracks(ids: string[], deactivateOthers: boolean | undefined): Observable<void>; deactivateSidecarAudioTracks(ids: string[]): Observable<void>; getActiveSidecarAudioTracks(): OmpAudioTrack[]; getSidecarAudioTracks(): OmpAudioTrack[]; removeSidecarAudioTracks(ids: string[]): Observable<void>; removeAllSidecarAudioTracks(): Observable<void>; createSidecarAudioRouter(sidecarAudioTrackId: string, inputsNumber: number, outputsNumber?: number): Observable<OmpAudioRouterState>; routeSidecarAudioRouterNodes(sidecarAudioTrackId: string, newAudioInputOutputNodes: AudioInputOutputNode[]): Observable<void>; createSidecarAudioPeakProcessor(sidecarAudioTrackId: string, audioMeterStandard?: AudioMeterStandard): Observable<Observable<AudioPeakProcessorMessageEvent>>; exportMainAudioTrackToSidecar(mainAudioTrackId: string): Observable<OmpAudioTrack>; exportMainAudioTracksToSidecar(mainAudioTrackIds: string[]): Observable<OmpAudioTrack[]>; getThumbnailVttUrl(): string | undefined; loadThumbnailVttUrl(thumbnailVttUrl: string): Observable<void>; isPiPSupported(): boolean; enablePiP(): Observable<void>; disablePiP(): Observable<void>; getConfig(): VideoControllerConfig; getHls(): Hls | undefined; updateActiveNamedEventStreams(eventNames: OmpNamedEventEventName[]): Observable<void>; getActiveNamedEventStreams(): OmpNamedEventEventName[]; loadBlackVideo(): Observable<Video>; }