Spaces:
Sleeping
Sleeping
File size: 2,415 Bytes
8344179 51f51c3 8344179 b83a268 8344179 b83a268 8344179 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
/**
* Consumer client for receiving video streams in RobotHub TransportServer
*/
import { VideoClientCore } from './core.js';
import type { WebSocketMessage, ClientOptions, WebRTCStats, FrameUpdateCallback, VideoConfigUpdateCallback, StreamStartedCallback, StreamStoppedCallback, RecoveryTriggeredCallback, StatusUpdateCallback, StreamStatsCallback, WebRTCOfferMessage } from './types.js';
export declare class VideoConsumer extends VideoClientCore {
private onFrameUpdateCallback;
private onVideoConfigUpdateCallback;
private onStreamStartedCallback;
private onStreamStoppedCallback;
private onRecoveryTriggeredCallback;
private onStatusUpdateCallback;
private onStreamStatsCallback;
private iceCandidateQueue;
private hasRemoteDescription;
constructor(baseUrl: string, options?: ClientOptions);
connect(workspaceId: string, roomId: string, participantId?: string): Promise<boolean>;
startReceiving(): Promise<void>;
stopReceiving(): Promise<void>;
handleWebRTCOffer(message: WebRTCOfferMessage): Promise<void>;
private handleWebRTCIce;
private processQueuedIceCandidates;
createPeerConnection(): RTCPeerConnection;
private sendIceCandidateToProducer;
private handleStreamStarted;
onFrameUpdate(callback: FrameUpdateCallback): void;
onVideoConfigUpdate(callback: VideoConfigUpdateCallback): void;
onStreamStarted(callback: StreamStartedCallback): void;
onStreamStopped(callback: StreamStoppedCallback): void;
onRecoveryTriggered(callback: RecoveryTriggeredCallback): void;
onStatusUpdate(callback: StatusUpdateCallback): void;
onStreamStats(callback: StreamStatsCallback): void;
protected handleRoleSpecificMessage(message: WebSocketMessage): void;
private handleFrameUpdate;
private handleVideoConfigUpdate;
private handleStreamStopped;
private handleRecoveryTriggered;
private handleStatusUpdate;
private handleStreamStats;
/**
* Create a consumer and automatically connect to a room
*/
static createAndConnect(workspaceId: string, roomId: string, baseUrl: string, participantId?: string): Promise<VideoConsumer>;
/**
* Get the video element for displaying the remote stream
*/
attachToVideoElement(videoElement: HTMLVideoElement): void;
/**
* Get current video statistics
*/
getVideoStats(): Promise<WebRTCStats | null>;
}
|