unified-video-framework
Version:
Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more
61 lines • 2.59 kB
TypeScript
import { IVideoPlayer, VideoSource, PlayerConfig, PlayerState, PlayerError, Quality, SubtitleTrack } from './interfaces/IVideoPlayer';
import { PlayerEvent } from './interfaces';
import { EventEmitter } from './utils/EventEmitter';
export declare abstract class BasePlayer implements IVideoPlayer {
protected container: HTMLElement | null;
protected config: PlayerConfig;
protected events: EventEmitter;
protected state: PlayerState;
protected source: VideoSource | null;
protected subtitles: SubtitleTrack[];
protected currentSubtitleIndex: number;
constructor();
protected getDefaultConfig(): PlayerConfig;
protected getDefaultState(): PlayerState;
initialize(container: HTMLElement | string, config?: PlayerConfig): Promise<void>;
protected abstract setupPlayer(): Promise<void>;
abstract destroy(): Promise<void>;
abstract load(source: VideoSource): Promise<void>;
play(): Promise<void>;
pause(): void;
stop(): void;
abstract seek(time: number): void;
setVolume(level: number): void;
mute(): void;
unmute(): void;
toggleMute(): void;
abstract getQualities(): Quality[];
abstract getCurrentQuality(): Quality | null;
abstract setQuality(index: number): void;
abstract setAutoQuality(enabled: boolean): void;
setPlaybackRate(rate: number): void;
getPlaybackRate(): number;
getCurrentTime(): number;
getDuration(): number;
getBufferedPercentage(): number;
getState(): PlayerState;
isPlaying(): boolean;
isPaused(): boolean;
isEnded(): boolean;
abstract enterFullscreen(): Promise<void>;
abstract exitFullscreen(): Promise<void>;
toggleFullscreen(): Promise<void>;
abstract enterPictureInPicture(): Promise<void>;
abstract exitPictureInPicture(): Promise<void>;
on(event: string, handler: Function): void;
off(event: string, handler?: Function): void;
once(event: string, handler: Function): void;
protected emit(event: PlayerEvent, ...args: any[]): void;
setFreeDuration?(seconds: number): void;
resetFreePreviewGate?(): void;
getSubtitles(): SubtitleTrack[];
setSubtitleTrack(index: number): void;
disableSubtitles(): void;
protected abstract applySubtitleTrack(track: SubtitleTrack): void;
protected abstract removeSubtitles(): void;
protected handleError(error: PlayerError): void;
protected updateTime(time: number): void;
protected updateBuffered(percentage: number): void;
protected setBuffering(isBuffering: boolean): void;
}
//# sourceMappingURL=BasePlayer.d.ts.map