@exmg/livery
Version:
Ex Machina Group Livery Web SDK.
55 lines (54 loc) • 1.79 kB
TypeScript
import { Engine, EngineOptions } from './Engine';
/**
* HTMLMediaElement extended with getStartDate() method which is available in Safari.
*
* @see https://developer.apple.com/documentation/webkitjs/htmlmediaelement
*/
interface ExtendedHTMLMediaElement extends HTMLMediaElement {
/**
* Returns the media start date.
* E.g: Based on #EXT-X-PROGRAM-DATE-TIME in playlist of a live HLS stream.
*/
getStartDate?: () => Date | null;
}
/**
* LiveryPlayer Engine using a standard browser HTMLVideoElement.
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement
*/
export declare class VideoElementEngine extends Engine {
static engineName: string;
media: ExtendedHTMLMediaElement;
/**
* Last zeroTime emitted.
*/
protected lastZeroTime: number;
constructor(options: EngineOptions);
static canPlay(type: string): boolean;
/**
* Dispose VideoElementEngine.
*/
dispose(): void;
init(): void;
isLive(): boolean;
reload(): void;
selectAudioQuality(): void;
selectVideoQuality(): void;
setSource(sourceUrl: string): void;
/**
* Emit zerotime event when specified value differs from last value by more than specified threshold.
* @param zeroTime Zero time in milliseconds since January 1, 1970 00:00:00 UTC
* @param threshold Threshold in milliseconds
*/
protected emitZeroTime(zeroTime: number, threshold?: number): void;
/**
* Reset state, e.g: before (re)loading sourceUrl.
*/
protected reset(): void;
/**
* Gets and emits media zero time if supported by browser and media.
* E.g: When Safari is playing back a live HLS stream with program date time data.
*/
protected updateZeroTime(): void;
}
export {};