Files
VideoPlayer/src/types/index.ts

66 lines
1.2 KiB
TypeScript

/**
* type interfaces
*
* author: db123 at db
* creation: 22/4/2026
*/
export interface AdapterAPI {
load: () => void;
play: () => void;
pause: () => void;
destroy: () => void;
time: number;
volume: number;
muted: boolean;
readonly duration: () => number;
}
export interface PlayerConfig {
type?: "native" | "hls" | "dash";
theme?: "dark" | "light";
accent?: string;
controls?: boolean | ControlConfig;
preload?: "auto" | "metadata" | "none";
autoplay?: boolean;
loop?: boolean;
muted?: boolean;
adapters?: AdapterConfig;
prefixClass: string;
}
export interface ControlConfig {
playToggle: boolean;
seekPos: number;
seekNeg: number;
qualitySelector: boolean;
playbackSpeed: Array<number>;
fullscreen: boolean;
volume: boolean;
progressBar: boolean;
currentTime: boolean;
timeLeft: boolean;
}
export interface AdapterConfig {
native?: boolean;
hls?: boolean | HLSOptions;
dash?: boolean | DASHOptions;
}
export interface HLSOptions {
enableWorker?: boolean;
}
export interface DASHOptions {
enableWorker?: boolean;
}
export interface PlayerEvents {
onPlay?: () => void;
onPause?: () => void;
onEnd?: () => void;
onError?: () => void;
onBuffer?: () => void;
}