@100mslive/hls-player
Version:
HLS client library which uses HTML5 Video element and Media Source Extension for playback
50 lines (49 loc) • 2.14 kB
TypeScript
import { HlsPlayerStats } from '@100mslive/hls-stats';
import { HMSHLSLayer } from './IHMSHLSLayer';
import { HMSHLSException } from '../error/HMSHLSException';
import { HLSPlaybackState, HMSHLSPlayerEvents } from '../utilies/constants';
declare type HMSHLSListenerDataMapping = {
[HMSHLSPlayerEvents.SEEK_POS_BEHIND_LIVE_EDGE]: HMSHLSStreamLive;
[HMSHLSPlayerEvents.TIMED_METADATA_LOADED]: HMSHLSCue;
[HMSHLSPlayerEvents.STATS]: HlsPlayerStats;
[HMSHLSPlayerEvents.PLAYBACK_STATE]: HMSHLSPlaybackState;
[HMSHLSPlayerEvents.CAPTION_ENABLED]: boolean;
[HMSHLSPlayerEvents.ERROR]: HMSHLSException;
[HMSHLSPlayerEvents.CURRENT_TIME]: number;
[HMSHLSPlayerEvents.AUTOPLAY_BLOCKED]: HMSHLSException;
[HMSHLSPlayerEvents.MANIFEST_LOADED]: HMSHLSManifestLoaded;
[HMSHLSPlayerEvents.LAYER_UPDATED]: HMSHLSLayerUpdated;
};
export declare type HMSHLSPlayerListeners<E extends HMSHLSPlayerEvents> = (data: HMSHLSListenerDataMapping[E], name: E) => void;
export interface HMSHLSStreamLive {
isLive: boolean;
}
export interface HMSHLSPlaybackState {
state: HLSPlaybackState;
}
export interface HMSHLSCue {
id?: string;
payload: string;
duration: number;
startDate: Date;
endDate?: Date;
}
export interface HMSHLSManifestLoaded {
layers: HMSHLSLayer[];
}
export interface HMSHLSLayerUpdated {
layer: HMSHLSLayer;
}
export interface IHMSHLSPlayerEventEmitter {
on<E extends HMSHLSPlayerEvents>(eventName: E, listener: HMSHLSPlayerListeners<E>): void;
off<E extends HMSHLSPlayerEvents>(eventName: E, listener?: HMSHLSPlayerListeners<E>): void;
}
export declare class HMSHLSPlayerEventEmitter implements IHMSHLSPlayerEventEmitter {
private eventEmitter;
constructor();
on<E extends HMSHLSPlayerEvents>(eventName: E, listener: HMSHLSPlayerListeners<E>): void;
off<E extends HMSHLSPlayerEvents>(eventName: E, listener: HMSHLSPlayerListeners<E>): void;
emitEvent<E extends HMSHLSPlayerEvents>(eventName: E, eventObject: Parameters<HMSHLSPlayerListeners<E>>[0]): boolean;
removeAllListeners<E extends HMSHLSPlayerEvents>(eventName?: E): void;
}
export {};