UNPKG

@phenixrts/sdk

Version:
51 lines (50 loc) 1.85 kB
import IDisposable from '../../lang/IDisposable'; import { Second } from '../../units/Units'; import ReadOnlySubject from '../../rx/ReadOnlySubject'; import IsoBmffSegment from '../decode/bitstream/container/isobmff/segment/IsoBmffSegment'; import { TrackWriterWriteStatus } from '../decode/track/TrackWriterWriteStatus'; export type IsoBmffPlayerOptions = { audioMimeType?: string; videoMimeType?: string; targetPlayoutBufferDuration?: Second; }; export declare enum IsoBmffPlayerState { Initializing = 0, Initialized = 1, Buffering = 2, Playing = 3, Paused = 4, Failed = 5, Stopped = 6 } export default class IsoBmffPlayer implements IDisposable { private readonly _logger; private readonly _state; private readonly _readOnlyState; private readonly _audioMimeType; private readonly _videoMimeType; private readonly _mediaElement; private readonly _mseDecoder; private readonly _audioTrackFeeder; private readonly _videoTrackFeeder; private readonly _playbackMonitor; private readonly _disposables; constructor(mediaElement: HTMLMediaElement, options?: IsoBmffPlayerOptions); get state(): ReadOnlySubject<IsoBmffPlayerState>; get bufferedLength(): Second; appendAudioSegment(segment: IsoBmffSegment): Promise<TrackWriterWriteStatus>; appendVideoSegment(segment: IsoBmffSegment): Promise<TrackWriterWriteStatus>; reset(): void; dispose(): void; private handleMseDecoderError; private handleMseDecoderInitializing; private handleMseDecoderDecoding; private onMseDecoderStatus; private resetTrackFeeders; private dropSegment; private feedInitializationSegment; private feedSegment; private updatePlaybackSettings; private enforceCurrentTimeInBufferedRange; private triggerMediaElementPlay; }