import { Api } from './api'; import { Observable } from 'rxjs'; import { HelpMenuGroup, OmpAudioTrack, OmpNamedEvent, OmpNamedEventEventName, VideoBufferingEvent, VideoEndedEvent, VideoErrorEvent, VideoFullscreenChangeEvent, VideoLoadedEvent, VideoLoadingEvent, VideoPlaybackRateEvent, VideoPlayEvent, VideoSafeZoneChangeEvent, VideoSeekedEvent, VideoSeekingEvent, VideoTimeChangeEvent, VideoWindowPlaybackStateChangeEvent, VolumeChangeEvent } from '../types'; import Hls from 'hls.js'; import { Video, VideoLoadOptions, VideoSafeZone, VideoWindowPlaybackState } from '../video'; import { VideoKeyframe, VideoKeyframeOptions } from '../video/model'; export interface VideoApi extends Api { /** * Fires on video load start. * @readonly */ onVideoLoading$: Observable; /** * Fires on video load. Initial value is undefined. * Always emits the current value on subscription. * @readonly */ onVideoLoaded$: Observable; /** * Fires on video time change * @readonly */ onVideoTimeChange$: Observable; /** * Fires on video play * @readonly */ onPlay$: Observable; /** * Fires on video pause * @readonly */ onPause$: Observable; /** * Fires on video seeking * @readonly */ onSeeking$: Observable; /** * Fires on video seeked * @readonly */ onSeeked$: Observable; /** * Fires on video end * @readonly */ onEnded$: Observable; /** * Fires on if error occurs on video load * @readonly */ onVideoError$: Observable; /** * Fires on video buffering * @readonly */ onBuffering$: Observable; /** * Fires on volume change * @readonly */ onVolumeChange$: Observable; /** * Fires on playback rate change * @readonly */ onPlaybackRateChange$: Observable; /** * Fires on fullscreen change * @readonly */ onFullscreenChange$: Observable; /** * Fires on video safe zone change * @readonly */ onVideoSafeZoneChange$: Observable; /** * Fires on video window playback state change * @readonly */ onVideoWindowPlaybackStateChange$: Observable; /** * Fires on event which has active stream (see {@link updateActiveNamedEventStreams} */ onNamedEvent$: Observable; /** * Loads new video * * @param sourceUrl Video manifest URL */ loadVideo(sourceUrl: string): Observable