Files
v10/dist/dev/playback/engines/hls/adapter.d.ts
T

42 lines
1.7 KiB
TypeScript

import { Composition } from "../../../core/composition/create-composition.js";
import { SimpleHlsEngineContext, SimpleHlsEngineState } from "./engine.js";
import { Constructor, MixinReturn } from "@videojs/utils/types";
//#region src/playback/engines/hls/adapter.d.ts
interface SimpleHlsMediaProps {
src: string;
preload: '' | 'none' | 'metadata' | 'auto';
disableRemotePlayback: boolean;
}
declare const simpleHlsMediaDefaultProps: SimpleHlsMediaProps;
interface SimpleHlsMediaAPI extends SimpleHlsMediaProps {
readonly engine: Composition<SimpleHlsEngineState, SimpleHlsEngineContext>;
attach(mediaElement: HTMLMediaElement): void;
detach(): void;
destroy(): void;
play(): Promise<void>;
}
/**
* Mixin that adds SPF playback engine behavior to any base class.
*
* Implements the src/play() contract per the WHATWG HTML spec so that SPF can
* be used anywhere a media element API is expected.
*
* A single engine instance is created at construction and recycled across src
* changes.
*
* @example
* class SimpleHlsMedia extends SimpleHlsMediaMixin(HTMLVideoElementHost) {}
*
* const media = new SimpleHlsMedia();
* media.attach(document.querySelector('video'));
* media.src = 'https://stream.mux.com/abc123.m3u8';
*/
declare function SimpleHlsMediaMixin<Base extends Constructor<any>>(BaseClass: Base): MixinReturn<Base, SimpleHlsMediaAPI>;
declare const SimpleHlsMediaElement_base: MixinReturn<{
new (): {};
}, SimpleHlsMediaAPI>;
/** Standalone SPF media adapter with no base class. */
declare class SimpleHlsMediaElement extends SimpleHlsMediaElement_base {}
//#endregion
export { SimpleHlsMediaAPI, SimpleHlsMediaElement, SimpleHlsMediaMixin, SimpleHlsMediaProps, simpleHlsMediaDefaultProps };
//# sourceMappingURL=adapter.d.ts.map