UNPKG

@jxstjh/jhvideo

Version:

HTML5 jhvideo base on MPEG2-TS Stream Player

43 lines (42 loc) 1.52 kB
import { StreamOpt } from '../model/playerModel'; export interface RecoveryConfig { enabled?: boolean; maxRecoverCount?: number; stablePlaySeconds?: number; } export interface RecoveryControllerOptions { onRecover: () => boolean | void | Promise<boolean | void>; onExhausted: () => void; } /** * 管理稳定播放后的断线恢复状态。 * * JPlayer 仍负责真正创建和销毁播放器;此控制器只负责恢复策略、 * 重试次数、稳定播放计时,以及直播/回放的恢复位置。 */ export declare class RecoveryController { private readonly options; private static readonly MAX_RECOVER_COUNT; private static readonly DEFAULT_STABLE_PLAY_SECONDS; private static readonly MAX_STABLE_PLAY_SECONDS; private enabled; private maxRecoverCount; private recoverResetSeconds; private recoverCount; private resetTimer; private stablePlaying; private recovering; private recoveryAttemptId; constructor(options: RecoveryControllerOptions); configure(config: RecoveryConfig): void; shouldRecover(errorType: string | undefined, isNetworkDead: boolean, hasPlayer: boolean): boolean; tryRecover(onBeforeRecover?: () => void): boolean; markPlaybackStarted(): void; teardownSession(): void; prepareStreamState(stream: StreamOpt, currentSeconds: number): void; destroy(): void; private clearResetTimer; private handleRecoveryFailure; private normalizeNumber; private calculateNewBeginTime; }