UNPKG

unified-video-framework

Version:

Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more

70 lines 3.19 kB
import { EventEmitter } from 'events'; import { VideoPlayerConfig, VideoSource, PlayerState, PlayerEvent, EventHandler, Quality, SubtitleTrack, AudioTrack, PlayerMetrics, PlayerError, DRMConfig } from './interfaces'; export declare abstract class VideoPlayer { protected config: VideoPlayerConfig; protected eventEmitter: EventEmitter; protected state: PlayerState; protected currentSource?: VideoSource; protected metrics: PlayerMetrics; protected errors: PlayerError[]; constructor(config?: VideoPlayerConfig); abstract load(source: VideoSource): Promise<void>; abstract play(): Promise<void>; abstract pause(): void; abstract stop(): void; abstract seek(position: number): void; abstract setVolume(volume: number): void; abstract setPlaybackRate(rate: number): void; abstract getCurrentTime(): number; abstract getDuration(): number; abstract getVolume(): number; abstract getPlaybackRate(): number; abstract isMuted(): boolean; abstract setMuted(muted: boolean): void; abstract getAvailableQualities(): Quality[]; abstract getCurrentQuality(): Quality | null; abstract setQuality(quality: Quality): void; abstract enableAutoQuality(enabled: boolean): void; abstract getSubtitleTracks(): SubtitleTrack[]; abstract getCurrentSubtitleTrack(): SubtitleTrack | null; abstract setSubtitleTrack(track: SubtitleTrack | null): void; abstract getAudioTracks(): AudioTrack[]; abstract getCurrentAudioTrack(): AudioTrack | null; abstract setAudioTrack(track: AudioTrack): void; abstract enterFullscreen(): void; abstract exitFullscreen(): void; abstract isFullscreen(): boolean; abstract enterPictureInPicture(): void; abstract exitPictureInPicture(): void; abstract isPictureInPicture(): boolean; on(event: PlayerEvent, handler: EventHandler): void; off(event: PlayerEvent, handler: EventHandler): void; once(event: PlayerEvent, handler: EventHandler): void; removeAllListeners(event?: PlayerEvent): void; protected emit(event: PlayerEvent, data?: any): void; getState(): PlayerState; protected setState(newState: PlayerState): void; getConfig(): VideoPlayerConfig; updateConfig(config: Partial<VideoPlayerConfig>): void; protected abstract applyConfig(): void; getMetrics(): PlayerMetrics; protected initializeMetrics(): PlayerMetrics; protected generateSessionId(): string; protected handleError(error: PlayerError): void; protected trackAnalytics(event: string, data?: any): void; protected abstract configureDRM(drmConfig: DRMConfig): Promise<void>; abstract destroy(): void; protected cleanup(): void; protected formatTime(seconds: number): string; private pad; abstract getBufferedRanges(): TimeRanges; abstract getSeekableRanges(): TimeRanges; protected isBuffering(): boolean; abstract getBandwidth(): number; abstract getNetworkState(): number; abstract getVideoWidth(): number; abstract getVideoHeight(): number; abstract getDroppedFrames(): number; abstract getDecodedFrames(): number; } //# sourceMappingURL=VideoPlayer.d.ts.map