UNPKG

@videojs/core

Version:

Core components and utilities for Video.js

59 lines (58 loc) 2.76 kB
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