@videojs/core
Version:
Core components and utilities for Video.js
59 lines (58 loc) • 2.76 kB
TypeScript
import Hls from "hls.js";
//#region src/media/engine/hls-engine.d.ts
/** @TODO Move interface/type defs (CJP) */
/** @TODO Narrow and/or parameterize EventTarget via generics/inference (CJP) */
interface PlaybackEngine extends EventTarget {
src: HTMLMediaElement["src"] | undefined;
mediaElement: HTMLMediaElement | undefined;
/** @TODO Widen/extend and/or parameterize EventTarget via generics/inference (CJP) */
element: HTMLElement | undefined;
destroy: () => void;
}
declare class HlsPlaybackEngine extends EventTarget {
constructor();
protected _hlsInstance: Hls | undefined;
get src(): string | undefined;
set src(src: string | undefined);
get element(): HTMLElement | undefined;
set element(val: HTMLElement | undefined);
get mediaElement(): HTMLMediaElement | undefined;
set mediaElement(val: HTMLMediaElement | undefined);
protected _createHlsInstance(): void;
protected _destroyHlsInstance(): void;
destroy(): void;
}
declare const createHlsPlaybackEngine: () => PlaybackEngine;
//#endregion
//#region src/media/playable.d.ts
/** @TODO Split out "playable" vs. "audible" vs. "temporal" and compose via factory (current mixin pattern or spreadable mixin pattern) (CJP) */
declare const Events: readonly ["volumechange", "pause", "play", "playing", "emptied", "loadedmetadata", "timeupdate", "durationchange"];
interface MediaStateOwner extends EventTarget, Pick<HTMLMediaElement, "src"> {
mediaElement?: HTMLMediaElement | undefined;
}
interface PlayableMediaStateOwner extends EventTarget, MediaStateOwner, Pick<HTMLMediaElement, "play" | "pause" | "paused"> {}
interface AudibleMediaStateOwner extends EventTarget, MediaStateOwner, Pick<HTMLMediaElement, "muted" | "volume"> {}
declare class MediaPlaybackController extends EventTarget implements MediaStateOwner, PlayableMediaStateOwner, AudibleMediaStateOwner {
protected _playbackEngine: PlaybackEngine;
constructor();
get mediaElement(): HTMLMediaElement | undefined;
set mediaElement(value: HTMLMediaElement | undefined);
get paused(): boolean;
pause(): void;
play(): Promise<void>;
get muted(): boolean;
set muted(value: boolean);
get volume(): number;
set volume(value: number);
get duration(): number;
get currentTime(): number;
set currentTime(value: number);
get src(): string;
set src(value: string);
handleEvent(event: Event): void;
destroy(): void;
}
declare const createMediaPlaybackController: () => MediaPlaybackController;
//#endregion
export { type AudibleMediaStateOwner, Events, HlsPlaybackEngine, PlaybackEngine as IBasePlaybackEngine, MediaPlaybackController, type MediaStateOwner, type PlayableMediaStateOwner, createHlsPlaybackEngine, createMediaPlaybackController };
//# sourceMappingURL=media.d.ts.map