66 lines
1.2 KiB
TypeScript
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;
|
|
}
|