mediasoup-client
Version:
mediasoup client side TypeScript library
122 lines • 3.18 kB
TypeScript
import { EnhancedEventEmitter } from './enhancedEvents';
import type { MediaKind, RtpParameters } from './RtpParameters';
import type { AppData } from './types';
export type ConsumerOptions<ConsumerAppData extends AppData = AppData> = {
id: string;
producerId: string;
kind: 'audio' | 'video';
rtpParameters: RtpParameters;
streamId?: string;
onRtpReceiver?: OnRtpReceiverCallback;
appData?: ConsumerAppData;
};
/**
* Invoked synchronously immediately after a new RTCRtpReceiver is created.
* This allows for creating encoded streams in chromium browsers.
*/
export type OnRtpReceiverCallback = (rtpReceiver: RTCRtpReceiver) => void;
export type ConsumerEvents = {
transportclose: [];
trackended: [];
'@getstats': [(stats: RTCStatsReport) => void, (error: Error) => void];
'@close': [];
'@pause': [];
'@resume': [];
};
export type ConsumerObserver = EnhancedEventEmitter<ConsumerObserverEvents>;
export type ConsumerObserverEvents = {
close: [];
pause: [];
resume: [];
trackended: [];
};
export declare class Consumer<ConsumerAppData extends AppData = AppData> extends EnhancedEventEmitter<ConsumerEvents> {
private readonly _id;
private readonly _localId;
private readonly _producerId;
private _closed;
private readonly _rtpReceiver?;
private readonly _track;
private readonly _rtpParameters;
private _paused;
private _appData;
protected readonly _observer: ConsumerObserver;
constructor({ id, localId, producerId, rtpReceiver, track, rtpParameters, appData, }: {
id: string;
localId: string;
producerId: string;
rtpReceiver?: RTCRtpReceiver;
track: MediaStreamTrack;
rtpParameters: RtpParameters;
appData?: ConsumerAppData;
});
/**
* Consumer id.
*/
get id(): string;
/**
* Local id.
*/
get localId(): string;
/**
* Associated Producer id.
*/
get producerId(): string;
/**
* Whether the Consumer is closed.
*/
get closed(): boolean;
/**
* Media kind.
*/
get kind(): MediaKind;
/**
* Associated RTCRtpReceiver.
*/
get rtpReceiver(): RTCRtpReceiver | undefined;
/**
* The associated track.
*/
get track(): MediaStreamTrack;
/**
* RTP parameters.
*/
get rtpParameters(): RtpParameters;
/**
* Whether the Consumer is paused.
*/
get paused(): boolean;
/**
* App custom data.
*/
get appData(): ConsumerAppData;
/**
* App custom data setter.
*/
set appData(appData: ConsumerAppData);
get observer(): ConsumerObserver;
/**
* Closes the Consumer.
*/
close(): void;
/**
* Transport was closed.
*/
transportClosed(): void;
/**
* Get associated RTCRtpReceiver stats.
*/
getStats(): Promise<RTCStatsReport>;
/**
* Pauses receiving media.
*/
pause(): void;
/**
* Resumes receiving media.
*/
resume(): void;
private onTrackEnded;
private handleTrack;
private destroyTrack;
}
//# sourceMappingURL=Consumer.d.ts.map