/** * @typedef {import('./manifest-loader/parser/model').MediaSegment} MediaSegment */ /** * @typedef {import("../../../xgplayer-streaming-shared/es/services/stats").StatsInfo} Stats */ /** * @typedef {{ * seamless?: boolean, * startTime?: number, * bitrate?: number * }} SwitchUrlOptions */ /** * @typedef {{ * reuseMse?: boolean, * clearSwitchStatus?: boolean, * }} LoadOptions */ export const logger: Logger; export class Hls { static version: any; /** * @param {('video'|'audio')?} mediaType * @returns {Boolean} */ static isSupported(mediaType: ('video' | 'audio') | null): boolean; static enableLogger(): void; static disableLogger(): void; constructor(cfg: any); version: any; /** @type {HTMLMediaElement | null} */ media: HTMLMediaElement | null; /** @type {import('./config').HlsOption} */ config: import('./config').HlsOption; /** @type {ManifestLoader} */ _manifestLoader: ManifestLoader; /** @type {SegmentLoader} */ _segmentLoader: SegmentLoader; /** @type {Playlist} */ _playlist: Playlist; /** @type {BufferService} */ _bufferService: BufferService; /** @type {GapService} */ _gapService: GapService; /** @type {SeiService} */ _seiService: SeiService; /** @type {MediaStatsService} */ _stats: MediaStatsService; _prevSegSn: any; _prevSegCc: any; _tickTimer: any; _tickInterval: number; _segmentProcessing: boolean; _reloadOnPlay: boolean; _switchUrlOpts: any; _isProcessQuotaExceeded: boolean; get isLive(): any; get streams(): import("./playlist/stream").Stream[]; get currentStream(): import("./playlist/stream").Stream; get hasSubtitle(): boolean; get totalDuration(): number; get baseDts(): any; get abrSwitchPoint(): any; speedInfo(): { speed: number; avgSpeed: number; }; bufferInfo(maxHole?: number): { start: number; end: number; buffers: [number, number][]; remaining: number; index?: number; nextStart?: number; nextEnd?: number; prevStart?: number; prevEnd?: number; }; /** * @returns {Stats} */ getStats(): Stats; playbackQuality(): { droppedVideoFrames?: undefined; totalVideoFrames?: undefined; creationTime?: undefined; } | { droppedVideoFrames: any; totalVideoFrames: any; creationTime: any; }; /** * @param {string} url * @param {LoadOptions | boolean} options */ load(url?: string, options?: LoadOptions | boolean): Promise; _urlSwitching: boolean; /** * @param {string} url * @private */ private _loadData; replay(isPlayEmit: any): Promise; /** * @param {string} url * @param {?SwitchUrlOptions} options * @returns */ switchURL(url: string, options?: SwitchUrlOptions | null): Promise; switchStream(id: any, force?: boolean): Promise; switchAudioStream(id: any, force?: boolean): Promise; switchSubtitleStream(lang: any): Promise; detachMedia(): Promise; destroy(): Promise; /** * @private */ private _loadM3U8; /** * @private 首次更新 master playlist 的 media level */ private _refreshM3U8; /** * @private */ private _pollM3U8; /** * @private */ private _loadSegment; /** * @private */ private _loadSegmentDirect; /** * @param {MediaSegment} seg * @param {MediaSegment} audioSeg * @private */ private _reqAndBufferSegment; /** * @private */ private _onLoadeddata; /** * @private */ private _onPlay; /** * @private */ private _onPause; _disconnectTimer: NodeJS.Timeout; /** * @private */ private _onSeeking; _onCheckQuotaExceeded(): Promise; /** * @private */ private _onTimeupdate; _checkStreamTrackChange(time: any): void; /** * @private */ private _clear; /** * @private */ private _reset; /** * @private */ private _end; /** * @private */ private _stopTick; /** * @private */ private _startTick; /** * @private */ private _tick; /** * @param {StreamingError} error * @param {boolean?} endOfStream * @private */ private _emitError; /** * @private */ private _getSeamlessSwitchPoint; /** * @private */ private _tryEos; } export type MediaSegment = import('./manifest-loader/parser/model').MediaSegment; export type Stats = import("../../../xgplayer-streaming-shared/es/services/stats").StatsInfo; export type SwitchUrlOptions = { seamless?: boolean; startTime?: number; bitrate?: number; }; export type LoadOptions = { reuseMse?: boolean; clearSwitchStatus?: boolean; }; import { ManifestLoader } from "./manifest-loader"; import { Playlist } from "./playlist"; import { SegmentLoader } from "./segment-loader"; import { getConfig } from "./config"; import { Logger } from "xgplayer-streaming-shared"; import { BufferService } from "./buffer-service"; import { GapService } from "../../../xgplayer-streaming-shared/es/services"; import { SeiService } from "../../../xgplayer-streaming-shared/es/services"; import { MediaStatsService } from "../../../xgplayer-streaming-shared/es/services"; export { ManifestLoader, Playlist, SegmentLoader, getConfig };