UNPKG

@videosdk.live/js-sdk

Version:

<h1 align="center"> <img src="https://static.videosdk.live/videosdk_logo_website_black.png"/><br/> <p align="center"> Video SDK for JavaScript<br/> <a href="https://videosdk.live/">videosdk.live</a> </p> </h1>

531 lines 18.5 kB
export class Meeting { /** * Create a new meeting with id * @param {string} meetingId * @param {Participant} localParticipant * @param {RoomClient} roomClient */ constructor(meetingId: string, localParticipant: Participant, roomClient: RoomClient); /** * @type {string} */ id: string; roomClient: RoomClient; /** * @type {string} */ activeSpeakerId: string; /** * @type {string} */ activePresenterId: string; /** * @type {string} */ mainParticipantId: string; /** * @type {Map<string, Connection>} */ connections: Map<string, Connection>; /** * @type {Participant} */ localParticipant: Participant; /** * @type {Map<string, Participant>} */ participants: Map<string, Participant>; /** * @type {Map<string, Character>} */ characters: Map<string, Character>; /** * @type {string} */ baseUrl: string; /** * @type {string} */ livestreamState: string; /** * @type {string} */ recordingState: string; /** * @type {string} */ hlsState: string; /** * @type {string} */ transcriptionState: string; /** * @type {string} */ translationState: string; /** * @type {Object} */ hlsUrls: any; messages: any[]; eventEmitter: EventEmitter<[never]>; get isE2EEEnabled(): any; handleError(error: any): void; join(): void; changeMode(mode: any): void; leave(): void; end(): void; /** * * @param {string} participantId * @param {boolean} decision */ respondEntry(participantId: string, decision: boolean): void; /** * @returns {Map<string, Participant>} */ get pinnedParticipants(): Map<string, Participant>; muteMic(): void; /** * @param {MediaStream | undefined} customAudioTrack? */ unmuteMic(customAudioTrack?: MediaStream | undefined): void; /** * * @param {MediaStream | undefined} customAudioTrack? * @returns */ publishAudio(customAudioTrack?: MediaStream | undefined): Promise<void>; unpublishAudio(): Promise<void>; disableWebcam(): void; /** * @param {MediaStream | undefined} customVideoTrack? */ enableWebcam(customVideoTrack?: MediaStream | undefined): void; /** * @param {MediaStream | undefined} customVideoTrack? */ publishVideo(customVideoTrack?: MediaStream | undefined): Promise<void>; unpublishVideo(): Promise<void>; disableScreenShare(): void; /** * @param {MediaStream | undefined}customScreenSharingTrack? */ enableScreenShare(customScreenSharingTrack?: MediaStream | undefined): void; /** * @param {MediaStream | undefined}customScreenSharingTrack? */ pubblishScreenShare(customScreenSharingTrack?: MediaStream | undefined): void; unpublishScreenShare(): void; /** * Send a message over the DataChannel with chunking. * * @param {string | Blob | ArrayBuffer | ArrayBufferView} payload - The message to send. * @param {object} [options={}] - Additional send options. * @param {("RELIABLE"|"UNRELIABLE")} [options.reliability="RELIABLE"] - Reliability mode for the message. */ send(payload: string | Blob | ArrayBuffer | ArrayBufferView, options?: { reliability?: ("RELIABLE" | "UNRELIABLE"); }): Promise<any>; /** * @param {string} kind? */ pauseAllStreams(kind: string): void; /** * @param {string} kind? */ resumeAllStreams(kind: string): void; /** * @param {string} webhookUrl? * @param {string} awsDirPath? * @param {{layout: { type: "GRID" | "SPOTLIGHT" | "SIDEBAR" , priority: "SPEAKER" | "PIN", gridSize: number}}} config? * @param {{enabled: boolean , summary: { enabled: boolean, prompt: string | undefined } | undefined}} transcription? */ startRecording(webhookUrl: string, awsDirPath: string, config: { layout: { type: "GRID" | "SPOTLIGHT" | "SIDEBAR"; priority: "SPEAKER" | "PIN"; gridSize: number; }; }, transcription: { enabled: boolean; summary: { enabled: boolean; prompt: string | undefined; } | undefined; }): void; stopRecording(): void; /** * @param {any} config? */ startTranscription(config: any): void; stopTranscription(): void; /** * @param {any} config? */ startTranslation(config: any): Promise<void>; /** * @param {string} language? */ changeTranslationLanguage(language: string): Promise<void>; stopTranslation(): Promise<void>; /** * @param {{layout: { type: "GRID" | "SPOTLIGHT" | "SIDEBAR" , priority: "SPEAKER" | "PIN", gridSize: number}}} config? * @param {Array<{url : string, streamKey: string}>} outputs */ startLivestream(outputs: Array<{ url: string; streamKey: string; }>, config: { layout: { type: "GRID" | "SPOTLIGHT" | "SIDEBAR"; priority: "SPEAKER" | "PIN"; gridSize: number; }; }): void; stopLivestream(): void; /** * @param {{layout: { type: "GRID" | "SPOTLIGHT" | "SIDEBAR" , priority: "SPEAKER" | "PIN", gridSize: number}}} config? * @param {{enabled: boolean , summary: { enabled: boolean, prompt: string | undefined } | undefined}} transcription? */ startHls(config: { layout: { type: "GRID" | "SPOTLIGHT" | "SIDEBAR"; priority: "SPEAKER" | "PIN"; gridSize: number; }; }, transcription: { enabled: boolean; summary: { enabled: boolean; prompt: string | undefined; } | undefined; }): Promise<void>; stopHls(): void; createCharacter(config: any): Character; getMics(): Promise<{ deviceId: string; label: string; }[]>; getWebcams(): Promise<{ deviceId: string; label: string; facingMode: "front" | "environment"; }[]>; /** * * @param {string | MediaStream } object */ changeMic(object: string | MediaStream): void; /** * * @param {string | MediaStream } object */ changeWebcam(object: string | MediaStream): void; /** * * @param { MediaStream } stream */ replaceWebcamStream(stream: MediaStream): void; /** * * @param {"low" | "med" | "high"} quality */ setWebcamQuality(quality: "low" | "med" | "high"): void; startWhiteboard(): void; stopWhiteboard(): void; /** * * @param {{link: string}} options */ startVideo({ link }: { link: string; }): void; stopVideo(): void; resumeVideo(): void; refreshConnection(): void; /** * * @param {{currentTime: number}} options */ pauseVideo({ currentTime }: { currentTime: number; }): void; /** * * @param {{currentTime: number}} options */ seekVideo({ currentTime }: { currentTime: number; }): void; pubSub: { /** * Publish message to a topic * * @param {String} topic * @param {String} message * @param {{ persist: boolean, sendOnly: Array<String> }} options * @param {object} payload */ publish: (topic: string, message: string, options: { persist: boolean; sendOnly: Array<string>; }, payload: object) => Promise<void>; /** * Subscribe to message on a topic * * @param {String} topic * @param {Function} callback */ subscribe: (topic: string, callback: Function) => Promise<any>; /** * Unsubscribe from messages on a topic * * @param {String} topic * @param {Function} callback */ unsubscribe: (topic: string, callback: Function) => Promise<void>; }; handlePeerAdd({ peer }: { peer: any; }): void; handleStreamState({ state, peerId, streamId }: { state: any; peerId: any; streamId: any; }): void; handlePeerRemove({ peerId }: { peerId: any; }): void; handleProducerAdd({ producer }: { producer: any; }): void; handleUpdateProducer({ producer }: { producer: any; }): void; handleProducerRemove({ producerId }: { producerId: any; }): void; handleConsumerAdd({ consumer, peerId }: { consumer: any; peerId: any; }): void; handleConsumerResume({ consumerId, peerId }: { consumerId: any; peerId: any; }): void; handleConsumerPause({ consumerId, peerId }: { consumerId: any; peerId: any; }): void; handleConsumerRemove({ consumerId, peerId }: { consumerId: any; peerId: any; }): void; handleParticipantMediaStateChanged({ peerId, kind, newState }: { peerId: any; kind: any; newState: any; }): void; handleParticipantPausedBySubManager(data: any): void; handleParticipantResumeBySubManager(data: any): void; handleSpeakerChange({ peerId }: { peerId: any; }): void; handleNewChatMessage({ payload, from, reliability, timestamp }: { payload: any; from: any; reliability: any; timestamp: any; }): void; updateMainParticipant(participantId: any): void; handleEntryRequested({ id, name }: { id: any; name: any; }): void; handleEntryResponded({ id, decision }: { id: any; decision: any; }): void; handleMeetingJoined({ peers, poll, messages, baseUrl, switchRoomId }: { peers: any; poll: any; messages: any; baseUrl: any; switchRoomId: any; }): void; handleMeetingLeft(d: any): void; handleRecordingStateChanged(d: any): void; handleLivestreamStateChanged(d: any): void; handleHlsStateChanged(d: any): void; handleTranscriptionStateChanged(d: any): void; handleTranscriptionText(d: any): void; handleTranslationText(d: any): void; handleTranslationStateChanged(d: any): void; handleTranslationLanguageChanged(d: any): void; handleRecordingStarted(): void; handleRecordingStopped(): void; handleLivestreamStarted(): void; handleLivestreamStopped(): void; handleHlsStarted(d: any): void; handleHlsStopped(): void; handleWhiteboardStarted(data: any): void; handleWhiteboardStopped({}: {}): void; handleAddCharacter(config: any): void; handleInitCharacter(character: any): void; handleRemoveCharacter(config: any): void; handleCharacterStateChanged(config: any): void; handleCharacterMessage(config: any): void; handleUserMessage(config: any): void; handleOnCharacterData(config: any): void; handleOnCharacterError(config: any): void; handleOnRemoveCurrentMeetingParticipant(): void; handleVideoStateChanged(data: any): void; handleVideoSeeked({ currentTime }: { currentTime: any; }): void; handlePinStateChanged({ peerId, state, pinnedBy }: { peerId: any; state: any; pinnedBy: any; }): void; handleMeetingStateChanged({ state }: { state: any; }): void; handleQualityChanged({ type, state, timestamp }: { type: any; state: any; timestamp: any; }): void; handleConsumersPaused({ kind }: { kind: any; }): void; handleConsumersResumed({ kind }: { kind: any; }): void; handleVideoQualityChanged({ peerId, prevQuality, currentQuality }: { peerId: any; prevQuality: any; currentQuality: any; }): void; handleMicRequested({ peerId }: { peerId: any; }): void; handleWebcamRequested({ peerId }: { peerId: any; }): void; handleConnectionParticipantJoin({ roomId, peer }: { roomId: any; peer: any; }): void; handleConnectionParticipantLeft({ roomId, peerId }: { roomId: any; peerId: any; }): void; handleConnectionOpen({ peers, roomId, payload }: { peers: any; roomId: any; payload: any; }): void; handleConnectionClose({ roomId }: { roomId: any; }): void; handleMediaRelayError({ meetingId, error }: { meetingId: any; error: any; }): void; handleMediaRelayRequest({ peerId, meetingId, displayName, }: { peerId: any; meetingId: any; displayName: any; }): void; handleMediaRelayRequestResponse({ decision, decidedBy, meetingId }: { decision: any; decidedBy: any; meetingId: any; }): void; handleMediaRelayStart({ meetingId }: { meetingId: any; }): void; handleMediaRelayStop({ meetingId, reason }: { meetingId: any; reason: any; }): void; requestMediaRelay({ destinationMeetingId, token, kinds }: { destinationMeetingId: any; token: any; kinds: any; }): Promise<void>; stopMediaRelay(destinationMeetingId: any): Promise<void>; enableAdaptiveSubscription(): Promise<void>; disableAdaptiveSubscription(): Promise<void>; enableE2EE(): Promise<void>; disableE2EE(): Promise<void>; handleSwitchMeeting(d: any): void; handleConnectionChatMessage({ roomId, peerId, message }: { roomId: any; peerId: any; message: any; }): void; handleE2EEStateChange(data: any): void; /** * * @param {{meetingId: string, payload: string}} options */ connectTo({ meetingId, payload }: { meetingId: string; payload: string; }): Promise<void>; switchTo({ meetingId, token }: { meetingId: any; token: any; }): void; /** * * @param {{base64Data: string, token: string, fileName: string}} options * @returns {Promise<string?>} */ uploadBase64File: ({ base64Data, token, fileName }: { base64Data: string; token: string; fileName: string; }) => Promise<string | null>; /** * * @param {{url: string, token: string}} options * @returns {Promise<string?>} */ fetchBase64File: ({ url, token }: { url: string; token: string; }) => Promise<string | null>; /** * * @returns {InputDeviceInfo} */ get selectedCameraDevice(): InputDeviceInfo; /** * * @returns {InputDeviceInfo} */ get selectedMicrophoneDevice(): InputDeviceInfo; /** * Add event listener * @param { EV_PARTICIPANT_JOINED | EV_PARTICIPANT_LEFT | EV_SPEAKER_CHANGED | EV_PRESENTER_CHANGED | EV_MAIN_PARTICIPANT_CHANGED | EV_ENTRY_REQUESTED | EV_ENTRY_RESPONDED | EV_RECORDING_STARTED | EV_RECORDING_STOPPED | EV_LIVESTREAM_STARTED | EV_LIVESTREAM_STOPPED | EV_HLS_STARTED | EV_HLS_STOPPED | EV_STREAM_ENABLED | EV_STREAM_DISABLED | EV_WHITEBOARD_STARTED | EV_WHITEBOARD_STOPPED | EV_MEETING_JOINED | EV_MEETING_LEFT | EV_VIDEO_STATE_CHANGED | EV_VIDEO_SEEKED | EV_MIC_REQUESTED | EV_WEBCAM_REQUESTED | EV_PIN_STATE_CHANGED | EV_CONNECTION_OPEN | EV_CONNECTION_CLOSE | EV_SWITCH_MEETING | EV_ALL_STREAMS_PAUSED | EV_ALL_STREAMS_RESUMED | EV_DATA | EV_TRANSCRIPTION_STATE_CHANGED | EV_TRANSCRIPTION_TEXT | EV_TRANSLATION_STATE_CHANGED | EV_TRANSLATION_TEXT | EV_TRANSLATION_LANGUAGE_CHANGED } eventType * @param {Function} listener Callback function */ on(eventType: "participant-joined" | "participant-left" | "speaker-changed" | "presenter-changed" | "main-participant-changed" | "entry-requested" | "entry-responded" | "recording-started" | "recording-stopped" | "livestream-started" | "livestream-stopped" | "hls-started" | "hls-stopped" | "stream-enabled" | "stream-disabled" | "whiteboard-started" | "whiteboard-stopped" | "meeting-joined" | "meeting-left" | "video-state-changed" | "video-seeked" | "mic-requested" | "webcam-requested" | "pin-state-changed" | "connection-open" | "connection-close" | "switch-meeting" | "paused-all-streams" | "resumed-all-streams" | "data" | "transcription-state-changed" | "transcription-text" | "translation-state-changed" | "translation-text" | "translation-language-changed", listener: Function): void; /** * Remove event listener * @param { EV_PARTICIPANT_JOINED | EV_PARTICIPANT_LEFT | EV_SPEAKER_CHANGED | EV_PRESENTER_CHANGED | EV_MAIN_PARTICIPANT_CHANGED | EV_ENTRY_REQUESTED | EV_ENTRY_RESPONDED | EV_RECORDING_STARTED | EV_RECORDING_STOPPED | EV_LIVESTREAM_STARTED | EV_LIVESTREAM_STOPPED | EV_HLS_STARTED | EV_HLS_STOPPED | EV_STREAM_ENABLED | EV_STREAM_DISABLED | EV_WHITEBOARD_STARTED | EV_WHITEBOARD_STOPPED | EV_MEETING_JOINED | EV_MEETING_LEFT | EV_VIDEO_STATE_CHANGED | EV_VIDEO_SEEKED | EV_MIC_REQUESTED | EV_WEBCAM_REQUESTED | EV_PIN_STATE_CHANGED | EV_CONNECTION_OPEN | EV_CONNECTION_CLOSE | EV_SWITCH_MEETING | EV_ALL_STREAMS_PAUSED | EV_ALL_STREAMS_RESUMED | EV_DATA | EV_TRANSCRIPTION_STATE_CHANGED | EV_TRANSCRIPTION_TEXT | EV_TRANSLATION_STATE_CHANGED | EV_TRANSLATION_TEXT | EV_TRANSLATION_LANGUAGE_CHANGED } eventType * @param {Function} listener Callback function */ off(eventType: "participant-joined" | "participant-left" | "speaker-changed" | "presenter-changed" | "main-participant-changed" | "entry-requested" | "entry-responded" | "recording-started" | "recording-stopped" | "livestream-started" | "livestream-stopped" | "hls-started" | "hls-stopped" | "stream-enabled" | "stream-disabled" | "whiteboard-started" | "whiteboard-stopped" | "meeting-joined" | "meeting-left" | "video-state-changed" | "video-seeked" | "mic-requested" | "webcam-requested" | "pin-state-changed" | "connection-open" | "connection-close" | "switch-meeting" | "paused-all-streams" | "resumed-all-streams" | "data" | "transcription-state-changed" | "transcription-text" | "translation-state-changed" | "translation-text" | "translation-language-changed", listener: Function): void; #private; } import RoomClient from "./lib/RoomClient"; import { Connection } from "./connection"; import { Participant } from "./participant"; import { Character } from "./character"; import { EventEmitter } from "events"; //# sourceMappingURL=meeting.d.ts.map