rx-player
Version:
Canal+ HTML5 Video Player
59 lines • 2.17 kB
TypeScript
import type { IMediaElement } from "../../../compat/browser_compatibility_types";
import type { IRange } from "../../../utils/ranges";
import type { ITextDisplayer, ITextDisplayerData } from "../types";
/**
* Implementation of an `ITextDisplayer` for "native" text tracks.
* "Native" text tracks rely on a `<track>` HTMLElement and its associated
* expected behavior to display subtitles synchronized to the video.
* @class NativeTextDisplayer
*/
export default class NativeTextDisplayer implements ITextDisplayer {
private readonly _videoElement;
private readonly _track;
private readonly _trackElement;
private _buffered;
/**
* @param {HTMLMediaElement} videoElement
*/
constructor(videoElement: IMediaElement);
/**
* Push text segment to the NativeTextDisplayer.
* @param {Object} infos
* @returns {Object}
*/
pushTextData(infos: ITextDisplayerData): IRange[];
/**
* Remove buffered data.
* @param {number} start - start position, in seconds
* @param {number} end - end position, in seconds
* @returns {Object}
*/
removeBuffer(start: number, end: number): IRange[];
/**
* Returns the currently buffered data, in a TimeRanges object.
* @returns {Array.<Object>}
*/
getBufferedRanges(): IRange[];
reset(): void;
stop(): void;
private _removeData;
private _clearTrackElement;
}
/** Data of chunks that should be pushed to the NativeTextDisplayer. */
export interface INativeTextTracksBufferSegmentData {
/** The text track data, in the format indicated in `type`. */
data: string;
/** The format of `data` (examples: "ttml", "srt" or "vtt") */
type: string;
/**
* Language in which the text track is, as a language code.
* This is mostly needed for "sami" subtitles, to know which cues can / should
* be parsed.
*/
language?: string | undefined;
/** start time from which the segment apply, in seconds. */
start?: number | undefined;
/** end time until which the segment apply, in seconds. */
end?: number | undefined;
}
//# sourceMappingURL=native_text_displayer.d.ts.map