UNPKG

@videosdk.live/react-native-sdk

Version:

<h1 align="center"> <img src="https://cdn.videosdk.live/docs/images/react-native/banner.png" /><br/> </h1>

242 lines (238 loc) 7.58 kB
export class Participant { /** * @description This represents the participant's ID */ id: string; /** * @description This represents the participant's name */ displayName: string; /** * @description This represents the all the Streams that the participant is producing * */ streams: Map<string, Stream>; /** * @description This represents the quality of video being consumed for the participant * */ quality: "low" | "med" | "high"; /** * @description This represents if the participant is local or remote * */ local: boolean; /** * @description This represents participant's current pin state * */ pinState: { cam: boolean; share: boolean; }; /** * @description This represents participant's current webcam status */ webcamOn: boolean; /** * @description This represents participant's current mic status * */ micOn: boolean; /** * @description This represents participant's current screenshare status * */ screenShareOn: boolean; /** * @description This represents participant's current mode * */ mode: "SEND_AND_RECV" | "SIGNALLING_ONLY" | "RECV_ONLY"; /** * @description This represents metaData which is passed in MeetingProvider * */ metaData: object; /** * @description This method can be used to kickout a participant from the meeting */ remove(): void; /** * @description This method can be used to capture image in the meeting */ captureImage({ height, width, }: { height?: number; width?: number; }): Promise<string | null>; /** * @description This method can be used to enable mic of the participant in the meeting */ enableMic(): void; /** * @description This method can be used to disable mic of the participant in the meeting */ disableMic(): void; /** * @description This method can be used to enable webcam of the participant in the meeting */ enableWebcam(): void; /** * @description This method can be used to disable webcam of the participant in the meeting */ disableWebcam(): void; /** * @description This method can be used to set the incoming video quality of the participant * @param quality */ setQuality(quality: "low" | "med" | "high"): void; /** * @description This method can be used to set the incoming screen sharevideo quality of the participant * @param quality */ setScreenShareQuality(quality: "low" | "med" | "high"): void; /** * @description This method can be used to set the video quality of the participant based on the size of the viewport it is being displayed in * @param width Width of the Viewport in which participant video is shown * @param height Height of the Viewport in which participant video is shown */ setViewPort(width: number, height: number): void; /** * @param type If `SHARE_AND_CAM` is provided, it will pin screenshare and camera of the participant. * If `CAM` is provided, it will only pin the participant's camera, If `SHARE` is provided, it will only pin the participant's screen share */ pin(type: "SHARE_AND_CAM" | "CAM" | "SHARE"): void; /** * @param type If `SHARE_AND_CAM` is provided, it will unpin screenshare and camera of the participant. * If `CAM` is provided, it will only unpin the participant's camera, If `SHARE` is provided, it will only unpin the participant's screen share */ unpin(type: "SHARE_AND_CAM" | "CAM" | "SHARE"): void; /** * @description This method returns the Video Statistics of the participant. * To learn more about the video statistics check these [reference](https://docs.videosdk.live/react/guide/video-and-audio-calling-api-sdk/render-media/understanding-call-quality) */ getVideoStats(): Promise< Array<{ bitrate: number; rtt: number; network: string; codec: string; jitter: number; limitation: any; totalPackets: number; packetsLost: number; concealmentEvents: number; insertedSamplesForDecelaration: number; removedSamplesForAccelaration: number; size: any; currentSpatialLayer: number; currentTemporalLayer: number; preferredSpatialLayer: number; preferredTemporalLayer: number; }> >; /** * @description This method returns the Screen Share Statistics of the participant. * To learn more about the video statistics check these [reference](https://docs.videosdk.live/react/guide/video-and-audio-calling-api-sdk/render-media/understanding-call-quality) */ getShareStats(): Promise< Array<{ bitrate: number; rtt: number; network: string; codec: string; jitter: number; limitation: any; totalPackets: number; packetsLost: number; concealmentEvents: number; insertedSamplesForDecelaration: number; removedSamplesForAccelaration: number; size: any; currentSpatialLayer: number; currentTemporalLayer: number; preferredSpatialLayer: number; preferredTemporalLayer: number; }> >; /** * @description This method returns the Audio Statistics of the participant. * To learn more about the video statistics check these [reference](https://docs.videosdk.live/react/guide/video-and-audio-calling-api-sdk/render-media/understanding-call-quality) */ getAudioStats(): Promise< Array<{ bitrate: number; rtt: number; network: string; codec: string; jitter: number; totalPackets: number; packetsLost: number; concealmentEvents: number; insertedSamplesForDecelaration: number; removedSamplesForAccelaration: number; size: any; }> >; /** * @description This method returns the transport-level network statistics of the participant, including outgoing/incoming bitrate and total bytes transferred. */ getTransportStats(): Promise<{ send: { outgoingBitrate: number | null; totalSentBytes: number | null; }; receive: { incomingBitrate: number | null; totalReceivedBytes: number | null; }; } | null>; /** * @description Call this method to consume the remote participant's microphone audio stream * when `autoConsume` is set to `false` in `initMeeting`. */ consumeMicStreams(): void; /** * @description Call this method to consume the remote participant's webcam video stream * when `autoConsume` is set to `false` in `initMeeting`. */ consumeWebcamStreams(): void; /** * @description Stops consuming the remote participant's microphone audio stream. */ stopConsumingMicStreams(): void; /** * @description Stops consuming the remote participant's webcam video stream. */ stopConsumingWebcamStreams(): void; /** * Add event listener * @param eventType Event name to which you want to subscribe. * @param listener Callback function which will be triggered when the event happens */ on( eventType: | "stream-enabled" | "stream-disabled" | "media-status-changed" | "video-quality-changed", listener: (data: any) => void, ): void; /** * Remove event * @param eventType Event name to which you want to unsubscribe. * @param listener Callback function which was passed while subscribing to the event */ off( eventType: | "stream-enabled" | "stream-disabled" | "media-status-changed" | "video-quality-changed", listener: (data: any) => void, ): void; } import { Stream } from "./stream";