@swarmcloud/theoplayer
Version:
Let your viewers become your unlimitedly scalable CDN.
71 lines (63 loc) • 1.9 kB
TypeScript
export interface CacheLimit {
pc: number;
mobile: number;
}
export interface SignalConfig {
main: string;
backup: string;
}
export enum LogLevel {
Warn = 'warn',
Error = 'error',
None = 'none',
}
export enum TrackerZone {
Europe = 'eu',
HongKong = 'hk',
USA = 'us',
CN = 'cn',
}
export interface P2pConfig {
logLevel?: LogLevel | boolean;
signalConfig?: string | SignalConfig;
announce?: string;
trackerZone?: TrackerZone;
memoryCacheLimit?: CacheLimit;
diskCacheLimit?: CacheLimit;
useDiskCache?: boolean;
p2pEnabled?: boolean;
dcDownloadTimeout?: number;
webRTCConfig?: any;
useHttpRange?: boolean;
httpLoadTime?: number;
startFromSegmentOffset?: number;
ICEPreflight?: boolean;
prefetchOnly?: boolean;
tag?: string;
token?: string;
appName?: string;
appId?: string;
showSlogan?: boolean;
trickleICE?: boolean;
geoIpPreflight?: boolean;
getStats?: (totalP2PDownloaded: number, totalP2PUploaded: number, totalHTTPDownloaded: number, p2pDownloadSpeed: number)=>void;
getPeerId?: (peerId: string)=>void;
getPeersInfo?: (peers: string[])=>void;
channelId?: ((mpdUrl: string)=>string) | string;
segmentId?: (url: string, range: string)=>string;
validateSegment?: (segId: string, buffer: ArrayBufferLike)=>boolean;
}
export declare class P2pEngineTheo {
static isSupported(): boolean;
static readonly version: string;
static readonly protocolVersion: string;
public readonly version: string;
constructor(player: any, p2pConfig?: P2pConfig);
disableP2P(): void;
destroy(): void;
enableP2P(): void;
on(name: string, func: (...args)=>void): P2pEngineTheo;
once(name: string, func: (...args)=>void): P2pEngineTheo;
off(name: string, func: (...args)=>void): P2pEngineTheo;
}
export default P2pEngineTheo;