export default class Subtitle extends EventEmitter { constructor(options: any); /** * @type {string} * @description the version of sdk */ get version(): string; currentText: any; currentExtText: any; textTrack: any[]; _cid: number; _gid: number; _cids: any[]; _iId: number | null; _iC: number; player: any; root: HTMLElement | null; config: { line: string; bottom: number; mode: string; defaultOpen: boolean; baseSizeX: number; baseSizeY: number; minSize: number; minMobileSize: number; fitVideo: boolean; offsetBottom: number; fontColor: string; domRender: boolean; updateMode: string; renderMode: string; debugger: boolean; }; _ctime: number; _loadingTrack: {}; seiTime: number; lastSeiTime: number; _curTexts: any[]; _curRenderTask: any[]; _renderIntervalId: number; _lastTimeStamp: number; _isOpen: boolean; _videoMeta: { scale: number; videoHeight: number; videoWidth: number; lwidth: number; lheight: number; vWidth: number; vHeight: number; vBottom: number; vLeft: number; marginBottom: number; }; /** * @description 更新字幕列表 * @param {*} subTitles // 更新的字幕列表 * @param {*} isOpen // 是否默认开启 * @param {*} ieRemoveFirst // 是否移除之前的数据 */ setSubTitles(subTitles?: any, isOpen?: any, ieRemoveFirst?: any): void; /** * @description 更新更新单个语言数据 * @param {*} subTitle */ updateSubTitle(subTitle: any): void; addStyles(textTrack: any): void; attachPlayer(player: any): void; innerRoot: HTMLElement | null | undefined; detachPlayer(): void; switch(subtitle?: { id: string; language: string; }): Promise; /** * 开启扩展字幕 * @param {{ * id?: any, * language?: any * }} subtitle * @returns */ switchExt(subtitle?: { id?: any; language?: any; }): Promise; emitError(error: any): void; switchOn(): void; /** * 关闭字幕 */ switchOff(): void; get isOpen(): boolean; _log(...msg: any[]): void; _loadTrack(textTrack: any): ProxyPromise; _emitPlayerSwitch(curSubtitle: any, nextSubTitle: any): void; /** * @desc 多文件场景下下载多个vtt文件 * @param {*} textTrack * @param {*} maxCount */ _loadTrackUrls(textTrack: any, maxCount: any, promise: any): void; /** * @description 移除已经加载过的字幕url信息 * @param {*} textTrack * @param {*} data */ _freshUrl(textTrack: any, data?: any): void; /** * @desc 在当前的字幕list中插入后续加载到的字幕数据,按照时间分布插入 * @param {Array} dist * @param {Array} src * @returns */ _pushList(dist: any[], src: any[]): any[]; /** * @private * @description 更新当前生效字幕, 移除原有的渲染 * @param {} subtitle * @returns */ private _updateCurrent; __loadAll(): void; getDelCid(oldArr: any, newArr: any): any[]; getNewCid(oldArr: any, newArr: any): any[]; /** * @description 实时丢弃型更新, 字幕消费之后自动删除 * @param {number} currentTime 当前时间 * @returns */ _liveUpdate(currentTime: number): void; _update(currentTime: any): void; getUpdateData(texts: any, currentTime: any, currentText: any): { type: string; currentTime: number; id: any; language: any; texts: any; isOpen: boolean; }; _getPlayerCurrentTime(): number; _onPause: () => void; _onPlay: () => void; _onTimeupdate: () => void; _onResize: (target: any) => void; _onCoreEvents: (e: any) => void; _onSubtitlePlaylist(subtitleList: any): void; _onSubtitleSegment(urlList: any): void; _onCoreSeiintime(e: any): void; resize(width: any, height: any): void; __startResize(target: any): void; /** * @description 过期字幕移除 * @param {Array} list 当前的列表 * @param {number} time 需要移除的时间点 * @returns */ __removeByTime(list: any[], time: number): void; /** * @description 移除过期dom * @param {Array} ids * @returns */ __remove(ids: Array): void; /** * @description 渲染新增dom * @param {Array} jsonItems */ __render(jsonItems?: Array): void; _renderByWords(_dom: any, index: any, start: any, end: any, itemText: any): void; startRender: (timer: any) => void; stopRender(): void; show(): void; hide(): void; destroy: () => void; /** * * @param { string } event * @param { any } [data] * @returns */ emit(event: string, data?: any, ...args: any[]): void; /** * * @param { string } event * @param { (data?: any) => any } callback * @returns */ on(event: string, callback: (data?: any) => any, ...args: any[]): void; /** * * @param { string } event * @param { (data?: any) => any } callback * @returns */ once(event: string, callback: (data?: any) => any, ...args: any[]): void; /** * * @param { string } event * @param { (data?: any) => any } callback * @returns */ off(event: string, callback: (data?: any) => any, ...args: any[]): void; offAll(): void; /** * @description 获取底部边距 */ get marginBottom(): number; } export type SubtitleItem = { label?: string; language?: string; id?: string | number; isDefault?: boolean; url?: string; stringContent?: string; list: any[]; }; import EventEmitter from 'eventemitter3'; import ProxyPromise from './proxyPromise';