p2p-media-loader-core
Version:
P2P Media Loader core functionality
28 lines (27 loc) • 1.42 kB
TypeScript
import { CoreEventMap, SegmentWithStream, StreamConfig, StreamWithSegments } from "../types.js";
import { RequestsContainer } from "../requests/request-container.js";
import { EventTarget } from "../utils/event-target.js";
import { SegmentStorage } from "../segment-storage/index.js";
export type EventTargetMap = Record<`onStorageUpdated-${string}`, () => void> & CoreEventMap;
export declare class P2PLoader {
private streamManifestUrl;
private readonly stream;
private readonly requests;
private readonly segmentStorage;
private readonly config;
private readonly eventTarget;
private readonly onSegmentAnnouncement;
private readonly trackerClient;
private isAnnounceMicrotaskCreated;
constructor(streamManifestUrl: string, stream: StreamWithSegments, requests: RequestsContainer, segmentStorage: SegmentStorage, config: StreamConfig, eventTarget: EventTarget<EventTargetMap>, onSegmentAnnouncement: () => void);
downloadSegment(segment: SegmentWithStream): void;
isSegmentLoadingOrLoadedBySomeone(segment: SegmentWithStream): boolean;
isSegmentLoadedBySomeone(segment: SegmentWithStream): boolean;
get connectedPeerCount(): number;
private getSegmentsAnnouncement;
private onPeerConnected;
broadcastAnnouncement: (sendEmptyAnnouncement?: boolean) => void;
private sendSegmentsAnnouncement;
private onSegmentRequested;
destroy(): void;
}