Options
All
  • Public
  • Public/Protected
  • All
Menu

The video client is the core of the Video SDK.

Index

Functions

  • Renames your name or another user's name.

    • Only the host or manager can rename others.
    • The host can set whether the user is allowed to rename themselves. See client.isAllowToRename() to get the value.

    Parameters

    • name: string

      New display name.

    • Optional userId: number

      User ID of the user to rename.

    Returns ExecutedResult

  • Get the in-session participants of the session.

    Returns Participant[]

  • getMediaStream(): typeof Stream
  • Gets the media stream instance for managing the media.

    This usually the first step of using media.

    Returns typeof Stream

  • Gets the host of the session.

    Returns Participant | undefined

  • Gets the current session’s information.

    Returns SessionInfo

  • Gets the user by user ID.

    Parameters

    • userId: number

    Returns Participant | undefined

  • Initializes the Zoom Video SDK before join a session. The Zoom Video SDK uses an SDK key & secret for authentication.

    Parameters

    • language: string

      The language of the Video SDK. The default is en-US.

    • dependentAssets: string

      The Zoom Video SDK uses web workers and web assembly to process the media stream. This part of the code is separate from the SDK code, so you must specify the dependent assets path. Each SDK release includes the web worker and the web assembly assets in the lib folder. You can either deploy these assets to your private servers or use the cloud assets provided by Zoom. The property has following value:

      • Global: The default value. The dependent assets path will be https://source.zoom.us/videosdk/{version}/lib/
      • CDN: The dependent assets path will be https://dmogdx0jrul3u.cloudfront.net/videosdk/{version}/lib/
      • CN: Only applicable for China. The dependent assets path will be https://jssdk.zoomus.cn/videosdk/{version}/lib
      • {FULL_ASSETS_PATH}: The SDK will load the dependent assets specified by the developer.
    • Optional options: InitOptions

      Optional additional options for initialization.

    Returns ExecutedResult

  • isHost(): boolean
  • Determines whether the current user is the host.

    Returns boolean

  • isManager(): boolean
  • Determines whether the current user is a manager.

    Returns boolean

  • isOriginalHost(): boolean
  • Determines whether the current user is the original host. role_type in JWT payload =1 is the original host.

    Returns boolean

  • join(topic: string, token: string, userName: string, sessionPassword?: string, sessionIdleTimeoutMins?: number): ExecutedResult
    • Make sure to call the init method before joining.

    Parameters

    • topic: string

      Required. A session name of your choice or the name of the session you are joining (must match the SWK JWT tpc value).

    • token: string

      Required. Your Video SDK JWT, which you should generate on the server.

    • userName: string

      Required. A name for the user.

    • Optional sessionPassword: string

      Optional, unless it was set with the host. A session password of your choice. If set with the host, all attendees must provide the same password value or they will fail to join the session.

    • Optional sessionIdleTimeoutMins: number

      Optional. The number of minutes your session can idle before ending, with one user present and without cloud recording. The default is 40 minutes.

    Returns ExecutedResult

    an executed promise. Following are the possible error reasons:

    • duplicated operation: Duplicated invoking of the join method.
    • invalid apiKey/sdkKey or signature: API key, SDK key, or signature is not correct.
    • invalid password: Password is not correct.
    • invalid parameters: Can not join the session because of invalid parameters.
    • internal error: Internal error.
  • Leaves or ends the session.

    Parameters

    • Optional end: boolean

      Optional. Default is false. If true, the session ends. Only the host has the privilege to do this.

    Returns ExecutedResult

  • Makes other participant the host.

    • Only the host can make someone else the host.
    • There is only one host in a session. Once the host makes another user the host, the original host will no longer be the host.

    Parameters

    • userId: number

    Returns ExecutedResult

  • Makes another participant a manager.

    • Only the host can make others into managers.
    • There may be multiple managers in session.

    Parameters

    • userId: number

    Returns ExecutedResult

  • off(event: string, callback: (payload: any) => void): void
  • Removes the event handler.

    Parameters

    • event: string

      Event name.

    • callback: (payload: any) => void

      The event handler.

        • (payload: any): void
        • Parameters

          • payload: any

          Returns void

    Returns void

  • on(event: string, callback: (payload: any) => void): void
  • on(event: "connection-change", listener: (payload: ConnectionChangePayload) => void): void
  • on(event: "user-added", listener: (payload: ParticipantPropertiesPayload[]) => void): void
  • on(event: "user-updated", listener: (payload: ParticipantPropertiesPayload[]) => void): void
  • on(event: "user-removed", listener: (payload: ParticipantPropertiesPayload[]) => void): void
  • on(event: "video-active-change", listener: (payload: { state: VideoActiveState; userId: number }) => void): void
  • on(event: "video-dimension-change", listener: (payload: { height: number; type: "received"; width: number }) => void): void
  • on(event: "active-speaker", listener: (payload: ActiveSpeaker[]) => void): void
  • on(event: "host-ask-unmute-audio", listener: (payload: { reason: "Unmute" }) => void): void
  • on(event: "current-audio-change", listener: (payload: { action: AudioChangeAction; source?: MutedSource | LeaveAudioSource; type?: "computer" | "phone" }) => void): void
  • on(event: "dialout-state-change", listener: (payload: { code: DialoutState; phoneNumber: string; userId?: number; uuid: string }) => void): void
  • on(event: "audio-statistic-data-change", listener: (payload: { data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; jitter: number; max_loss: number; rtt: number; sample_rate: number }; type: "AUDIO_QOS_DATA" }) => void): void
  • on(event: "video-statistic-data-change", listener: (payload: { data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; fps: number; height: number; jitter: number; max_loss: number; rtt: number; sample_rate: number; width: number }; type: "VIDEO_QOS_DATA" }) => void): void
  • on(event: "chat-on-message", listener: (payload: ChatMessage) => void): void
  • on(event: "chat-privilege-change", listener: (payload: { chatPrivilege: ChatPrivilege }) => void): void
  • on(event: "command-channel-status", listener: (payload: ConnectionState) => void): void
  • on(event: "command-channel-message", listener: (payload: { msgid: string; senderId: string; senderName: string; text: string; timestamp: number }) => void): void
  • on(event: "recording-change", listener: (payload: { state: RecordingStatus }) => void): void
  • on(event: "individual-recording-change", listener: (payload: { state: RecordingStatus; userId?: number }) => void): void
  • on(event: "auto-play-audio-failed", listener: () => void): void
  • on(event: "device-change", listener: () => void): void
  • on(event: "video-capturing-change", listener: (payload: { state: VideoCapturingState }) => void): void
  • on(event: "active-share-change", listener: (payload: { state: "Active" | "Inactive"; userId: number }) => void): void
  • on(event: "share-content-dimension-change", listener: (payload: { height: number; type: "received" | "sended"; width: number }) => void): void
  • on(event: "peer-share-state-change", listener: (payload: { action: "Start" | "Stop"; userId: number }) => void): void
  • on(event: "share-privilege-change", listener: (payload: { privilege: SharePrivilege }) => void): void
  • on(event: "passively-stop-share", listener: (payload: PassiveStopShareReason) => void): void
  • on(event: "share-content-change", listener: (payload: { userId: number }) => void): void
  • on(event: "peer-video-state-change", listener: (payload: { action: "Start" | "Stop"; userId: number }) => void): void
  • on(event: "share-audio-change", listener: (payload: { state: "on" | "off" }) => void): void
  • on(event: "subsession-invite-to-join", listener: (payload: { subsessionId: string; subsessionName: string }) => void): void
  • on(event: "subsession-countdown", listener: (payload: { countdown: number }) => void): void
  • on(event: "subsession-time-up", listener: () => void): void
  • on(event: "closing-subsession-countdown", listener: (payload: { countdown: number }) => void): void
  • on(event: "subsession-broadcast-message", listener: (payload: { message: string }) => void): void
  • on(event: "subsession-ask-for-help", listener: (payload: { displayName: string; subsessionId: string; subsessionName: string; userId: number }) => void): void
  • on(event: "subsession-ask-for-help-response", listener: (payload: { result: AskHostHelpResponse }) => void): void
  • on(event: "subsession-state-change", listener: (payload: { status: SubsessionStatus }) => void): void
  • on(event: "main-session-user-updated", listener: (payload: any) => void): void
  • on(event: "video-virtual-background-preload-change", listener: (payload: { isReady: boolean }) => void): void
  • on(event: "media-sdk-change", listener: (payload: MediaSDKEncDecPayload) => void): void
  • on(event: "video-detailed-data-change", listener: (payload: { fps?: number; height?: number; quality?: VideoQuality; userId: number; width?: number }) => void): void
  • on(event: "caption-status", listener: (payload: { autoCaption: boolean; lang?: number }) => void): void
  • on(event: "caption-message", listener: (payload: LiveTranscriptionMessage) => void): void
  • on(event: "caption-enable", listener: (payload: boolean) => void): void
  • on(event: "share-can-see-screen", listener: () => void): void
  • on(event: "far-end-camera-request-control", listener: (payload: { currentControllingDisplayName?: string; currentControllingUserId?: number; displayName: string; userId: number }) => void): void
  • on(event: "far-end-camera-response-control", listener: (payload: { displayName: string; isApproved: boolean; reason?: FarEndCameraControlDeclinedReason; userId: number }) => void): void
  • on(event: "far-end-camera-in-control-change", listener: (payload: { isControlled: boolean; userId?: number }) => void): void
  • on(event: "far-end-camera-capability-change", listener: (payload: { ptz: PTZCameraCapability; userId: number }) => void): void
  • on(event: "network-quality-change", listener: (payload: { level: number; type: "uplink" | "downlink"; userId: number }) => void): void
  • on(event: "share-statistic-data-change", listener: (payload: { data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; fps: number; height: number; jitter: number; max_loss: number; rtt: number; sample_rate: number; width: number }; type: "VIDEOSHARE_QOS_DATA" }) => void): void
  • on(event: "caption-host-disable", listener: (payload: boolean) => void): void
  • on(event: "remote-control-approved-change", listener: { }): void
  • on(event: "remote-control-in-control-change", listener: { }): void
  • on(event: "remote-control-clipboard-change", listener: { }): void
  • on(event: "remote-control-request-change", listener: { }): void
  • on(event: "remote-control-app-status-change", listener: { }): void
  • on(event: "remote-control-controlled-status-change", listener: { }): void
  • on(event: "live-stream-status", listener: (status: LiveStreamStatus) => void): void
  • on(event: "video-aspect-ratio-change", listener: (payload: { aspectRatio: number; userId: number }) => void): void
  • on(event: "device-permission-change", listener: (payload: { name: "microphone" | "camera"; state: "denied" | "granted" | "prompt" }) => void): void
  • on(event: "chat-file-upload-progress", listener: (payload: { fileName: string; fileSize: number; progress: number; receiverGuid?: string; receiverId: number; retryToken?: string; status: ChatFileUploadStatus }) => void): void
  • on(event: "chat-file-download-progress", listener: (payload: { fileBlob?: Blob; fileName: string; fileSize: number; fileUrl: string; id: string; progress: number; senderGuid?: string; senderId: number; status: ChatFileDownloadStatus }) => void): void
  • on(event: "summary-status-change", listener: { }): void
  • on(event: "meeting-query-status-change", listener: { }): void
  • on(event: "subsession-invite-back-to-main-session", listener: (payload: { inviterGuid: string; inviterId: number; inviterName: string }) => void): void
  • on(event: "subsession-user-update", listener: (payload: { audio: string; bShareAudioOn: boolean; bVideoOn: boolean; isTalking?: boolean; muted: boolean; sharerOn: boolean; subsessionId: string; subsessionName: string; userGuid: string; userId: number }) => void): void
  • on(event: "subsession-broadcast-voice", listener: (payload: { status: boolean }) => void): void
  • on(event: "crc-call-out-state-change", listener: (payload: { code: CRCReturnCode; ip: string; protocol: CRCProtocol; uuid: string }) => void): void
  • on(event: "current-audio-level-change", listener: (payload: { level: number }) => void): void
  • on(event: "active-media-failed", listener: (payload: { code: ActiveMediaFailedCode; message: string; type: "audio" | "video" | "sharing" }) => void): void
  • on(event: "video-spotlight-change", listener: (payload: { spotlightList: { userId: number }[] }) => void): void
  • on(event: "video-screenshot-taken", listener: (payload: { displayName: string; userId: number }) => void): void
  • on(event: "share-content-screenshot-taken", listener: (payload: { displayName: string; userId: number }) => void): void
  • Listens for events and handles them.

    Parameters

    • event: string

      Event name.

    • callback: (payload: any) => void

      Ehe event handler.

        • (payload: any): void
        • Parameters

          • payload: any

          Returns void

    Returns void

  • Parameters

    Returns void

  • Parameters

    Returns void

  • Parameters

    Returns void

  • Parameters

    Returns void

  • Parameters

    • event: "video-active-change"
    • listener: (payload: { state: VideoActiveState; userId: number }) => void
        • Occurs when the remote video stream changes.

          client.on("video-active-change", async (payload) => {
          try {
          if (payload.state === "Active") {
          const element = await stream.attachVideo(userId, VideoQuality.Video_720P);
          container.appendChild(element);
          } else {
          const elements = await stream.detachVideo(userId);
          if (Array.isArray(elements)) {
          elements.forEach((e) => e.remove());
          } else {
          elements.remove();
          }
          }
          } catch (error) {
          console.log(error);
          }
          });
          category

          Video

          Parameters

          Returns void

    Returns void

  • Parameters

    • event: "video-dimension-change"
    • listener: (payload: { height: number; type: "received"; width: number }) => void
        • (payload: { height: number; type: "received"; width: number }): void
        • Occurs when the received video content dimension changes.

          client.on('video-dimension-change', payload=>{
          viewportElement.style.width = `${payload.width}px`;
          viewportElement.style.height = `${payload.height}px`;
          })
          category

          Video

          Parameters

          • payload: { height: number; type: "received"; width: number }
            • height: number

              Height.

            • type: "received"

              Type: Received video.

            • width: number

              Width.

          Returns void

    Returns void

  • Parameters

    • event: "active-speaker"
    • listener: (payload: ActiveSpeaker[]) => void
        • Occurs when some participants in the session are talking.

          client.on('active-speaker', (payload) => {
          console.log(`Active user:`,payload);
          });
          category

          Audio

          Parameters

          • payload: ActiveSpeaker[]

            Active user.

            • Distinguish activity level by volume, the largest is the first element.

          Returns void

    Returns void

  • Parameters

    • event: "host-ask-unmute-audio"
    • listener: (payload: { reason: "Unmute" }) => void

      Details in {@link event_audio_unmute_consent}.

        • (payload: { reason: "Unmute" }): void
        • Occurs when the host asks you to unmute audio.

          category

          Audio

          Parameters

          • payload: { reason: "Unmute" }

            The event detail.

            • Reason:
            • Spotlight: Host spotlighted you. If you are muted, you will receive the consent message.
            • Unmute: Host asks you to unmute audio.
            • Allow to talk: You are an attendee of a webinar, the host allowed you to talk.
            client.on('host-ask-unmute-audio', (payload) => {
            console.log(payload.reason);
            });
            • reason: "Unmute"

              The unmute consent reason.

          Returns void

    Returns void

  • Parameters

    • event: "current-audio-change"
    • listener: (payload: { action: AudioChangeAction; source?: MutedSource | LeaveAudioSource; type?: "computer" | "phone" }) => void
        • Occurs when current audio is changed.

          category

          Audio

          Parameters

          • payload: { action: AudioChangeAction; source?: MutedSource | LeaveAudioSource; type?: "computer" | "phone" }

            The event detail.

            • Action:
            • join: Join audio. Refer to the type attribute for details.
            • leave: Leave audio.
            • muted: Audio muted, refer to the source attribute for details.
            • unmuted: Audio unmuted, refer to the source attribute for details.
            • Type:
            • `computer': Join by computer audio.
            • phone: Join by phone.
            • Source:
            • active: User active action.
            • passive(mute all): Muted due to the host muting all.
            • passive(mute one): Muted due to the host muting you.
            • passive: Umnuted due to the host unmuting you.
            client.on('current-audio-change', (payload) => {
            if(payload.action==='join'){
            console.log('Joined by ',payload.type);
            }
            });
            • action: AudioChangeAction

              The current audio change action.

            • Optional source?: MutedSource | LeaveAudioSource

              If the action is muted, an extra field to show the muted source.

            • Optional type?: "computer" | "phone"

              Type of audio.

          Returns void

    Returns void

  • Parameters

    • event: "dialout-state-change"
    • listener: (payload: { code: DialoutState; phoneNumber: string; userId?: number; uuid: string }) => void

      Details in event_dial_out_change.

        • (payload: { code: DialoutState; phoneNumber: string; userId?: number; uuid: string }): void
        • Occurs when the dial-out state changes.

          client.on('dialout-state-change', (payload) => {
          console.log(payload.code);
          });
          category

          Phone

          Parameters

          • payload: { code: DialoutState; phoneNumber: string; userId?: number; uuid: string }
            • code: DialoutState

              The state code of the phone call.

            • phoneNumber: string

              Phone number

            • Optional userId?: number

              Phone user ID

            • uuid: string

              Unique ID for the call

          Returns void

    Returns void

  • Parameters

    • event: "audio-statistic-data-change"
    • listener: (payload: { data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; jitter: number; max_loss: number; rtt: number; sample_rate: number }; type: "AUDIO_QOS_DATA" }) => void
        • (payload: { data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; jitter: number; max_loss: number; rtt: number; sample_rate: number }; type: "AUDIO_QOS_DATA" }): void
        • Occurs when the audio statistics data is changed; decode (received).

          category

          Audio

          Parameters

          • payload: { data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; jitter: number; max_loss: number; rtt: number; sample_rate: number }; type: "AUDIO_QOS_DATA" }

            The event detail.

            • data
            • encoding: If encoding is true, the following metrics stand for the Send data statistics, otherwise, it stands for the Receive data statistics.
            • avg_loss: Audio's average package loss.
            • jitter: Audio's jitter.
            • max_loss: Audio's maximum package loss.
            • rtt: Audio's round trip time.
            • sample_rate: Audio's sample rate.
            • type : String AUDIO_QOS_DATA
            client.on('audio-statistic-data-change', (payload) => {
            console.log('emit', payload);
            });
            • data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; jitter: number; max_loss: number; rtt: number; sample_rate: number }

              Data

              • avg_loss: number

                Audio's Average package loss.

              • bandwidth: number

                Bandwidth, measured in bits per second (bps)

              • bitrate: number

                Bit rate, measured in bits per second (bps)

              • encoding: boolean

                If encoding is true, the following metrics stand for the Send data statistics, otherwise, it stands for the Receive data statistics.

              • jitter: number

                Audio's jitter.

              • max_loss: number

                Audio's maximum package loss.

              • rtt: number

                Audio's round trip time.

              • sample_rate: number

                Audio's sample rate.

            • type: "AUDIO_QOS_DATA"

              Type.

          Returns void

    Returns void

  • Parameters

    • event: "video-statistic-data-change"
    • listener: (payload: { data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; fps: number; height: number; jitter: number; max_loss: number; rtt: number; sample_rate: number; width: number }; type: "VIDEO_QOS_DATA" }) => void
        • (payload: { data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; fps: number; height: number; jitter: number; max_loss: number; rtt: number; sample_rate: number; width: number }; type: "VIDEO_QOS_DATA" }): void
        • Occurs when the video statistics data is changed; decode (received).

          category

          Video

          Parameters

          • payload: { data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; fps: number; height: number; jitter: number; max_loss: number; rtt: number; sample_rate: number; width: number }; type: "VIDEO_QOS_DATA" }

            The event detail

            • data
            • encoding: If encoding is true, the following metrics stand for the Send data statistics, otherwise, it stands for the Receive data statistics.
            • avg_loss: Video's average package loss.
            • jitter: Video's jitter.
            • max_loss: Video's maximum package loss.
            • rtt: Video's round trip time.
            • sample_rate: Video's sample rate.
            • width: Video's width.
            • height: Video's height.
            • fps: Video's frame rate in frames per second (FPS).
            • type : String VIDEO_QOS_DATA
            client.on('video-statistic-data-change', (payload) => {
            console.log('emit', payload);
            });
            • data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; fps: number; height: number; jitter: number; max_loss: number; rtt: number; sample_rate: number; width: number }

              Data.

              • avg_loss: number

                Video's average package loss.

              • bandwidth: number

                Bandwidth, measured in bits per second (bps)

              • bitrate: number

                Bit rate, measured in bits per second (bps)

              • encoding: boolean

                If encoding is true, the following metrics stand for the Send data statistics, otherwise, it stands for the Receive data statistics.

              • fps: number

                Video's frame rate in frames per second (FPS).

              • height: number

                Video's resolution height.

              • jitter: number

                Video's jitter.

              • max_loss: number

                Video's maximum package loss.

              • rtt: number

                Video's round trip time.

              • sample_rate: number

                Video's sample rate.

              • width: number

                Video's resolution width.

            • type: "VIDEO_QOS_DATA"

              Type.

          Returns void

    Returns void

  • Parameters

    • event: "chat-on-message"
    • listener: (payload: ChatMessage) => void
        • Occurs when receiving a chat.

          category

          Chat

          Parameters

          • payload: ChatMessage

            The event details.

            client.on('chat-on-message',payload=>{
            console.log('from %s, message:%s',payload.sender.name,payload.message);
            })

          Returns void

    Returns void

  • Parameters

    • event: "chat-privilege-change"
    • listener: (payload: { chatPrivilege: ChatPrivilege }) => void
        • Occurs when the host changes the chat privileges.

          category

          Chat

          Parameters

          • payload: { chatPrivilege: ChatPrivilege }

            The event detail.

            client.on('chat-privilege-change',payload=>{
            console.log(payload.chatPrivilege);
            })

          Returns void

    Returns void

  • Parameters

    Returns void

  • Parameters

    • event: "command-channel-message"
    • listener: (payload: { msgid: string; senderId: string; senderName: string; text: string; timestamp: number }) => void
        • (payload: { msgid: string; senderId: string; senderName: string; text: string; timestamp: number }): void
        • Occurs when command channel receives a message.

          category

          Command channel

          Parameters

          • payload: { msgid: string; senderId: string; senderName: string; text: string; timestamp: number }

            The event details.

            client.on('command-channel-message',payload=>{
            console.log('from %s, message:%s',payload.senderId, payload.text, payload.timestamp);
            })
            • msgid: string

              Message ID.

            • senderId: string

              Sender's user ID.

            • senderName: string

              Sender's display name.

            • text: string

              Message content.

            • timestamp: number

              Timestamp.

          Returns void

    Returns void

  • Parameters

    Returns void

  • Parameters

    • event: "individual-recording-change"
    • listener: (payload: { state: RecordingStatus; userId?: number }) => void

      Details in {@link event_iso_recording_change}.

        • Occurs when the individual cloud recording status changes.

          • Ask: When the host starts individual cloud recording, ask the user to accept or decline recording.
          • Accept: When the user accepts individual cloud recording.
          • Decline: When the user declines individual cloud recording.
          category

          Recording

          Parameters

          • payload: { state: RecordingStatus; userId?: number }

            The individual recording status.

            • state: RecordingStatus

              state

            • Optional userId?: number

              The user ID being recorded.

          Returns void

    Returns void

  • Parameters

    • event: "auto-play-audio-failed"
    • listener: () => void
        • (): void
        • Occurs when the SDK tried and failed to auto play audio. This may occur when invoking stream.startAudio() immediately after joining the session.

          client.on('auto-play-audio-failed',()=>{
          console.log('auto play audio failed, waiting user's interaction');
          })
          category

          Audio

          Returns void

    Returns void

  • Parameters

    Returns void

  • Parameters

    • event: "video-capturing-change"
    • listener: (payload: { state: VideoCapturingState }) => void
        • Occurs when the local video capture stream changes.

          client.on('video-capturing-change', (payload) => {
          try {
          if (payload.state === 'Started') {
          console.log('Capture started');
          } else if (payload.state === 'Stopped') {
          console.log('Capture stopped');
          } else {
          console.log('Stop capturing Failed');
          }
          } catch (error) {
          console.log(error);
          }
          });
          category

          Video

          Parameters

          Returns void

    Returns void

  • Parameters

    • event: "active-share-change"
    • listener: (payload: { state: "Active" | "Inactive"; userId: number }) => void
        • (payload: { state: "Active" | "Inactive"; userId: number }): void
        • Occurs when some participant starts screen sharing.

          client.on('active-share-change',payload=>{
          if(payload.state==='Active'){
          stream.startShareView(canvas,payload.userId);
          }else if(payload.state==='Inactive'){
          stream.stopShareView();
          }
          })
          category

          Screen share

          Parameters

          • payload: { state: "Active" | "Inactive"; userId: number }
            • state: "Active" | "Inactive"

              Sharing state.

            • userId: number

              User ID of active share.

          Returns void

    Returns void

  • Parameters

    • event: "share-content-dimension-change"
    • listener: (payload: { height: number; type: "received" | "sended"; width: number }) => void
        • (payload: { height: number; type: "received" | "sended"; width: number }): void
        • Occurs when shared content dimensions change.

          client.on('share-content-dimension-change',payload=>{
          viewportElement.style.width = `${payload.width}px`;
          viewportElement.style.height = `${payload.height}px`;
          })
          category

          Screen share

          Parameters

          • payload: { height: number; type: "received" | "sended"; width: number }
            • height: number

              Height.

            • type: "received" | "sended"

              Values: sended: current share; received: others' share.

            • width: number

              Width.

          Returns void

    Returns void

  • Parameters

    • event: "peer-share-state-change"
    • listener: (payload: { action: "Start" | "Stop"; userId: number }) => void
        • (payload: { action: "Start" | "Stop"; userId: number }): void
        • Occurs when some participant starts or stops screen sharing.

          client.on('peer-share-state-change',payload=>{
          if(payload.action==='Start'){
          console.log(`user:${payload.userId} starts share`);
          }else if(payload.action==='Stop'){
          console.log(`user:${payload.userId} stops share`);
          }
          })
          category

          Screen share

          Parameters

          • payload: { action: "Start" | "Stop"; userId: number }
            • action: "Start" | "Stop"

              Peer share action.

            • userId: number

              User ID.

          Returns void

    Returns void

  • Parameters

    Returns void

  • Parameters

    Returns void

  • Parameters

    • event: "share-content-change"
    • listener: (payload: { userId: number }) => void
        • (payload: { userId: number }): void
        • Occurs when received shared content automatically changes.

          • For example, if the host start new sharing, received shared content will be automatically changed.
          category

          Screen share

          Parameters

          • payload: { userId: number }
            • userId: number

              User ID currently receiving sharing.

          Returns void

    Returns void

  • Parameters

    • event: "peer-video-state-change"
    • listener: (payload: { action: "Start" | "Stop"; userId: number }) => void
        • (payload: { action: "Start" | "Stop"; userId: number }): void
        • Occurs when other participants start or stop video.

          client.on("peer-video-state-change", async (payload) => {
          if (payload.action === "Start") {
          const element = await stream.attachVideo(userId, VideoQuality.Video_720P);
          container.appendChild(element);
          } else if (payload.action === "Stop") {
          const elements = await stream.detachVideo(userId);
          if (Array.isArray(elements)) {
          elements.forEach((e) => e.remove());
          } else {
          elements.remove();
          }
          }
          });
          category

          Video

          Parameters

          • payload: { action: "Start" | "Stop"; userId: number }
            • action: "Start" | "Stop"

              Action of the peer video, Start or Stop.

            • userId: number

              User ID.

          Returns void

    Returns void

  • Parameters

    • event: "share-audio-change"
    • listener: (payload: { state: "on" | "off" }) => void
        • (payload: { state: "on" | "off" }): void
        • Occurs when the share audio state changes. Usually used to cooperatively change the state of computer audio.

          category

          Audio

          Parameters

          • payload: { state: "on" | "off" }
            • state: "on" | "off"

              The state of the Chrome browser shared tab audio.

          Returns void

    Returns void

  • Parameters

    • event: "subsession-invite-to-join"
    • listener: (payload: { subsessionId: string; subsessionName: string }) => void
        • (payload: { subsessionId: string; subsessionName: string }): void
        • Occurs when the host assigns you to a subsession. You can decide whether to join the subsession or not. Use SubsessionClient.joinSubsession(subsessionId) to join the subsession.

          category

          Subsession

          Parameters

          • payload: { subsessionId: string; subsessionName: string }
            • subsessionId: string

              Subsession ID.

            • subsessionName: string

              Subsession name.

          Returns void

    Returns void

  • Parameters

    • event: "subsession-countdown"
    • listener: (payload: { countdown: number }) => void
        • (payload: { countdown: number }): void
        • Occurs when the subsession has a countdown. This event will be triggered every second until time is up.

          category

          Subsession

          Parameters

          • payload: { countdown: number }
            • Countdown: seconds remaining.
            • countdown: number

              Countdown for subsession.

          Returns void

    Returns void

  • Parameters

    • event: "subsession-time-up"
    • listener: () => void

      Details in event_bo_room_time_up.

        • (): void
        • Occurs when the countdown is over.

          category

          Subsession

          Returns void

    Returns void

  • Parameters

    • event: "closing-subsession-countdown"
    • listener: (payload: { countdown: number }) => void
        • (payload: { countdown: number }): void
        • Occurs when there is a buffer countdown when the subsession is about to be closed. This event will be triggered every second until the countdown is over.

          category

          Subsession

          Parameters

          • payload: { countdown: number }
            • Countdown: seconds remaining.
            • countdown: number

              Countdown for closing the subsession.

          Returns void

    Returns void

  • Parameters

    • event: "subsession-broadcast-message"
    • listener: (payload: { message: string }) => void
        • (payload: { message: string }): void
        • Occurs when the host broadcasts content to all in the subsession.

          category

          Subsession

          Parameters

          • payload: { message: string }
            • message: string

              Broadcast message.

          Returns void

    Returns void

  • Parameters

    • event: "subsession-ask-for-help"
    • listener: (payload: { displayName: string; subsessionId: string; subsessionName: string; userId: number }) => void

      Details in event_bo_ask_for_help.

        • (payload: { displayName: string; subsessionId: string; subsessionName: string; userId: number }): void
        • Occurs when the host receives a request for help from a user in a subsession.

          category

          Subsession

          Parameters

          • payload: { displayName: string; subsessionId: string; subsessionName: string; userId: number }
            • displayName: string

              User's display name.

            • subsessionId: string

              Subsession ID.

            • subsessionName: string

              Subsession name.

            • userId: number

              User ID of the user who requested help.

          Returns void

    Returns void

  • Parameters

    Returns void

  • Parameters

    Returns void

  • Parameters

    • event: "main-session-user-updated"
    • listener: (payload: any) => void
        • (payload: any): void
        • Occurs when the host is in the subsession and the main session user changed.

          category

          Subsession

          Parameters

          • payload: any

          Returns void

    Returns void

  • Parameters

    • event: "video-virtual-background-preload-change"
    • listener: (payload: { isReady: boolean }) => void
        • (payload: { isReady: boolean }): void
        • Occurs when the virtual background (VB) is enabled and the VB model is loaded.

          category

          Video

          Parameters

          • payload: { isReady: boolean }
            • isReady: boolean

              Is ready to apply the virtual background.

          Returns void

    Returns void

  • deprecated

    Note: This event is deprecated and will always return success so that it does not break legacy integrations.

    Parameters

    Returns void

  • Parameters

    • event: "video-detailed-data-change"
    • listener: (payload: { fps?: number; height?: number; quality?: VideoQuality; userId: number; width?: number }) => void
        • (payload: { fps?: number; height?: number; quality?: VideoQuality; userId: number; width?: number }): void
        • Occurs on video cell statistic data changes.

          category

          Video

          Parameters

          • payload: { fps?: number; height?: number; quality?: VideoQuality; userId: number; width?: number }
            • Optional fps?: number

              Video frame rate in frames per second.

            • Optional height?: number

              Video resolution height.

            • Optional quality?: VideoQuality

              Video quality.

            • userId: number

              User ID.

            • Optional width?: number

              Video resolution width.

          Returns void

    Returns void

  • Parameters

    • event: "caption-status"
    • listener: (payload: { autoCaption: boolean; lang?: number }) => void
        • (payload: { autoCaption: boolean; lang?: number }): void
        • Occurs when the live transcription status changes.

          category

          Live Transcription

          Parameters

          • payload: { autoCaption: boolean; lang?: number }

            the event detail

            client.on('caption-status',payload=>{
            console.log(payload);
            })
            • autoCaption: boolean

              Is auto caption enabled.

            • Optional lang?: number

              Language code.

          Returns void

    Returns void

  • Parameters

    Returns void

  • Parameters

    • event: "caption-enable"
    • listener: (payload: boolean) => void
        • (payload: boolean): void
        • Occurs if the automatic live transcription enable status changes.

          category

          Live Transcription

          Parameters

          • payload: boolean

          Returns void

    Returns void

  • Parameters

    • event: "share-can-see-screen"
    • listener: () => void
        • (): void
        • Occurs when the requestReadReceipt option is true in the startShareScreen method. The sharer can receive the event if someone can see the shared screen.

          category

          Screen share

          Returns void

    Returns void

  • Parameters

    • event: "far-end-camera-request-control"
    • listener: (payload: { currentControllingDisplayName?: string; currentControllingUserId?: number; displayName: string; userId: number }) => void
        • (payload: { currentControllingDisplayName?: string; currentControllingUserId?: number; displayName: string; userId: number }): void
        • Occurs when the SDK received the far end camera request.

          category

          Camera

          Parameters

          • payload: { currentControllingDisplayName?: string; currentControllingUserId?: number; displayName: string; userId: number }

            the event detail

            • Optional currentControllingDisplayName?: string

              The display name who is controlling the camera.

            • Optional currentControllingUserId?: number

              The user ID who is controlling the camera.

            • displayName: string

              The display name who requested control.

            • userId: number

              The user ID who requested control.

          Returns void

    Returns void

  • Parameters

    Returns void

  • Parameters

    • event: "far-end-camera-in-control-change"
    • listener: (payload: { isControlled: boolean; userId?: number }) => void
        • (payload: { isControlled: boolean; userId?: number }): void
        • Occurs when the camera in control status changes.

          category

          Camera

          Parameters

          • payload: { isControlled: boolean; userId?: number }

            The event detail.

            • isControlled: boolean

              Is controlled by other user.

            • Optional userId?: number

              User ID.

          Returns void

    Returns void

  • Parameters

    Returns void

  • Parameters

    • event: "network-quality-change"
    • listener: (payload: { level: number; type: "uplink" | "downlink"; userId: number }) => void
        • (payload: { level: number; type: "uplink" | "downlink"; userId: number }): void
        • Occurs when network quality changes. The network quality reflects the video quality, so only when the user starts video, the data will broadcast to all users.

          category

          Video

          Parameters

          • payload: { level: number; type: "uplink" | "downlink"; userId: number }

            the network quality

            • level: number

              Level 0,1: bad 2: normal 3,4,5: good

            • type: "uplink" | "downlink"

              Uplink or downlink.

            • userId: number

              User ID.

          Returns void

    Returns void

  • Parameters

    • event: "share-statistic-data-change"
    • listener: (payload: { data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; fps: number; height: number; jitter: number; max_loss: number; rtt: number; sample_rate: number; width: number }; type: "VIDEOSHARE_QOS_DATA" }) => void
        • (payload: { data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; fps: number; height: number; jitter: number; max_loss: number; rtt: number; sample_rate: number; width: number }; type: "VIDEOSHARE_QOS_DATA" }): void
        • Occurs when the share statistics data is changed during decoding (received) or encoding (sent)

          category

          Screen share

          Parameters

          • payload: { data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; fps: number; height: number; jitter: number; max_loss: number; rtt: number; sample_rate: number; width: number }; type: "VIDEOSHARE_QOS_DATA" }

            the event detail

            • data
            • encoding: If encoding is true, the following metrics stand for the Send data statistics, otherwise, it stands for the Receive data statistics.
            • avg_loss: average package loss for video
            • jitter: jitter for video
            • max_loss: max package loss for video
            • rtt: round trip time for video
            • sample_rate: sample rate video
            • width: width for video
            • height: height for video
            • fps: Frames per second (FPS) for video
            • type : string "VIDEOSHARE_QOS_DATA"
            client.on('share-statistic-data-change', (payload) => {
            console.log('emit', payload);
            });
            • data: { avg_loss: number; bandwidth: number; bitrate: number; encoding: boolean; fps: number; height: number; jitter: number; max_loss: number; rtt: number; sample_rate: number; width: number }

              Quality of Service (QoS) data.

              • avg_loss: number

                Share's average package loss. (On Safari or Firefox, this value is always 0)

              • bandwidth: number

                Bandwidth, measured in bits per second (bps)

              • bitrate: number

                Bit rate, measured in bits per second (bps)

              • encoding: boolean

                If encoding is true, the following metrics stand for the Send data statistics, otherwise, it stands for the Receive data statistics.

              • fps: number

                Share's frame rate in frames per second (FPS).

              • height: number

                Share's resolution height.

              • jitter: number

                Share's jitter. (On Safari or Firefox, this value is always 0)

              • max_loss: number

                Share's maximum package loss. (On Safari or Firefox, this value is always 0)

              • rtt: number

                Share's round trip time. (On Safari or Firefox, this value is always 0)

              • sample_rate: number

                Share's sample rate. (On Safari or Firefox, this value is always 0)

              • width: number

                Share's resolution width.

            • type: "VIDEOSHARE_QOS_DATA"

          Returns void

    Returns void

  • Parameters

    • event: "caption-host-disable"
    • listener: (payload: boolean) => void
        • (payload: boolean): void
        • Occurs when the host disables caption.

          category

          Live Transcription

          Parameters

          • payload: boolean

            boolean

          Returns void

    Returns void

  • Parameters

    • event: "remote-control-approved-change"
    • listener: { }

      Details in {@link event_remote_control_approved_change}

        Returns void

      • Parameters

        • event: "remote-control-in-control-change"
        • listener: { }

          Details in {@link event_remote_control_in_control_change}

            Returns void

          • Parameters

            • event: "remote-control-clipboard-change"
            • listener: { }

              Details in {@link event_remote_control_clipboard_change}

                Returns void

              • Parameters

                • event: "remote-control-request-change"
                • listener: { }

                  Details in {@link event_remote_control_request_change}

                    Returns void

                  • Parameters

                    • event: "remote-control-app-status-change"
                    • listener: { }

                      Details in {@link event_remote_control_app_status_change}

                        Returns void

                      • Parameters

                        • event: "remote-control-controlled-status-change"
                        • listener: { }

                          Details in {@link event_remote_control_controlled_status_change}

                            Returns void

                          • Parameters

                            Returns void

                          • Parameters

                            • event: "video-aspect-ratio-change"
                            • listener: (payload: { aspectRatio: number; userId: number }) => void
                                • (payload: { aspectRatio: number; userId: number }): void
                                • Occurs when the SDK detects that the rendered video aspect ratio is not the same as the actual video aspect ratio. To correct the aspect ratio, update aspect-ratio CSS style to correct the ratio.

                                  client.on("video-aspect-ratio-change", (payload) => {
                                  const { userId, aspectRatio } = payload;
                                  const videoPlayerElement = // look up the video-player element by userId
                                  videoPlayerElement.style.aspectRatio = aspectRatio;
                                  });
                                  category

                                  Video

                                  Parameters

                                  • payload: { aspectRatio: number; userId: number }
                                    • aspectRatio: number

                                      Aspect ratio.

                                    • userId: number

                                      User ID.

                                  Returns void

                            Returns void

                          • Parameters

                            • event: "device-permission-change"
                            • listener: (payload: { name: "microphone" | "camera"; state: "denied" | "granted" | "prompt" }) => void
                                • (payload: { name: "microphone" | "camera"; state: "denied" | "granted" | "prompt" }): void
                                • Occurs when the SDK detects that the device permission has changed.

                                  category

                                  Media

                                  Parameters

                                  • payload: { name: "microphone" | "camera"; state: "denied" | "granted" | "prompt" }
                                    • name: "microphone" | "camera"

                                      device type

                                    • state: "denied" | "granted" | "prompt"

                                      permission state

                                  Returns void

                            Returns void

                          • Parameters

                            • event: "chat-file-upload-progress"
                            • listener: (payload: { fileName: string; fileSize: number; progress: number; receiverGuid?: string; receiverId: number; retryToken?: string; status: ChatFileUploadStatus }) => void
                                • (payload: { fileName: string; fileSize: number; progress: number; receiverGuid?: string; receiverId: number; retryToken?: string; status: ChatFileUploadStatus }): void
                                • Occurs when the upload file progress has changed

                                  category

                                  Chat

                                  Parameters

                                  • payload: { fileName: string; fileSize: number; progress: number; receiverGuid?: string; receiverId: number; retryToken?: string; status: ChatFileUploadStatus }
                                    • fileName: string

                                      File name

                                    • fileSize: number

                                      File size

                                    • progress: number

                                      Upload progress

                                    • Optional receiverGuid?: string

                                      Receiver user unified ID.

                                    • receiverId: number

                                      Receiver user ID

                                    • Optional retryToken?: string

                                      Retry token, can be used for re-sending file.

                                    • status: ChatFileUploadStatus

                                      Upload status

                                  Returns void

                            Returns void

                          • Parameters

                            • event: "chat-file-download-progress"
                            • listener: (payload: { fileBlob?: Blob; fileName: string; fileSize: number; fileUrl: string; id: string; progress: number; senderGuid?: string; senderId: number; status: ChatFileDownloadStatus }) => void
                                • (payload: { fileBlob?: Blob; fileName: string; fileSize: number; fileUrl: string; id: string; progress: number; senderGuid?: string; senderId: number; status: ChatFileDownloadStatus }): void
                                • Occurs when the download file progress changes

                                  category

                                  Chat

                                  Parameters

                                  • payload: { fileBlob?: Blob; fileName: string; fileSize: number; fileUrl: string; id: string; progress: number; senderGuid?: string; senderId: number; status: ChatFileDownloadStatus }
                                    • Optional fileBlob?: Blob

                                      File Blob, only available when the blob is set to true in the downloadFile method.

                                    • fileName: string

                                      File name

                                    • fileSize: number

                                      File size

                                    • fileUrl: string

                                      File URL

                                    • id: string

                                      Message ID

                                    • progress: number

                                      Upload progress

                                    • Optional senderGuid?: string

                                      Sender user unified ID.

                                    • senderId: number

                                      Sender user ID

                                    • status: ChatFileDownloadStatus

                                      Upload status

                                  Returns void

                            Returns void

                          • Parameters

                            • event: "summary-status-change"
                            • listener: { }

                              Details in {@link event_smart_summary_change}

                                Returns void

                              • Parameters

                                • event: "meeting-query-status-change"
                                • listener: { }

                                  Details in {@link event_meeting_query_change}

                                    Returns void

                                  • Parameters

                                    • event: "subsession-invite-back-to-main-session"
                                    • listener: (payload: { inviterGuid: string; inviterId: number; inviterName: string }) => void
                                        • (payload: { inviterGuid: string; inviterId: number; inviterName: string }): void
                                        • Occurs when the user is invited to back to the main session.

                                          category

                                          Subsession

                                          Parameters

                                          • payload: { inviterGuid: string; inviterId: number; inviterName: string }
                                            • inviterGuid: string

                                              Inviter user GUID

                                            • inviterId: number

                                              Inviter user ID

                                            • inviterName: string

                                              Inviter name

                                          Returns void

                                    Returns void

                                  • Parameters

                                    • event: "subsession-user-update"
                                    • listener: (payload: { audio: string; bShareAudioOn: boolean; bVideoOn: boolean; isTalking?: boolean; muted: boolean; sharerOn: boolean; subsessionId: string; subsessionName: string; userGuid: string; userId: number }) => void
                                        • (payload: { audio: string; bShareAudioOn: boolean; bVideoOn: boolean; isTalking?: boolean; muted: boolean; sharerOn: boolean; subsessionId: string; subsessionName: string; userGuid: string; userId: number }): void
                                        • Occurs when there is a change in the status of users in the subsession.

                                          category

                                          Subsession

                                          Parameters

                                          • payload: { audio: string; bShareAudioOn: boolean; bVideoOn: boolean; isTalking?: boolean; muted: boolean; sharerOn: boolean; subsessionId: string; subsessionName: string; userGuid: string; userId: number }
                                            • audio: string

                                              User's audio state.

                                            • bShareAudioOn: boolean

                                              Whether the sharer is also sharing the tab audio.

                                            • bVideoOn: boolean

                                              Whether the user started video.

                                            • Optional isTalking?: boolean

                                              Whether the user is talking.

                                            • muted: boolean

                                              Whether audio is muted.

                                            • sharerOn: boolean

                                              Whether the user started sharing.

                                            • subsessionId: string

                                              Subsession ID

                                            • subsessionName: string

                                              Subsession name

                                            • userGuid: string

                                              User GUID

                                            • userId: number

                                              User ID

                                          Returns void

                                    Returns void

                                  • Parameters

                                    • event: "subsession-broadcast-voice"
                                    • listener: (payload: { status: boolean }) => void
                                        • (payload: { status: boolean }): void
                                        • Occurs when the broadcasted voice's status changes.

                                          category

                                          Subsession

                                          Parameters

                                          • payload: { status: boolean }
                                            • status: boolean

                                              Whether the user is receiving the broadcasted voice.

                                          Returns void

                                    Returns void

                                  • Parameters

                                    • event: "crc-call-out-state-change"
                                    • listener: (payload: { code: CRCReturnCode; ip: string; protocol: CRCProtocol; uuid: string }) => void
                                        • Occurs when the CRC (Cloud Room Connector) device call state changes.

                                          client.on('crc-call-out-state-change', (payload) => {
                                          console.log(payload.code);
                                          });
                                          category

                                          CRC

                                          Parameters

                                          Returns void

                                    Returns void

                                  • Parameters

                                    • event: "current-audio-level-change"
                                    • listener: (payload: { level: number }) => void
                                        • (payload: { level: number }): void
                                        • Occurs when the current audio volume changes.

                                          category

                                          Audio

                                          Parameters

                                          • payload: { level: number }
                                            • level: number

                                              Volume level,range from 0 to 9.

                                          Returns void

                                    Returns void

                                  • Parameters

                                    • event: "active-media-failed"
                                    • listener: (payload: { code: ActiveMediaFailedCode; message: string; type: "audio" | "video" | "sharing" }) => void
                                        • Occurs when there is a media internal error, such as an unexpected interruption in media capture or insufficient memory. When receiving this event, we recommend refreshing the page or restarting the browser to resolve the issue. Since the user must do this, we recommend that you provide a popup to guide the user, such as 'We detected an issue with the media stream that we cannot resolve. Please refresh the page to try to fix it.' With two buttons: 'Refresh' and 'Cancel'.

                                          category

                                          Media

                                          Parameters

                                          Returns void

                                    Returns void

                                  • Parameters

                                    • event: "video-spotlight-change"
                                    • listener: (payload: { spotlightList: { userId: number }[] }) => void
                                        • (payload: { spotlightList: { userId: number }[] }): void
                                        • Occurs when the host or manager spotlights a user.

                                          client.on('video-spotlight-change', (payload) => {
                                          console.log(payload.spotlightList);
                                          });
                                          category

                                          Video

                                          Parameters

                                          • payload: { spotlightList: { userId: number }[] }
                                            • spotlightList: { userId: number }[]

                                              spotlighted user list

                                          Returns void

                                    Returns void

                                  • Parameters

                                    • event: "video-screenshot-taken"
                                    • listener: (payload: { displayName: string; userId: number }) => void
                                        • (payload: { displayName: string; userId: number }): void
                                        • Occurs when someone in the meeting takes a screenshot of the video

                                          category

                                          Video

                                          Parameters

                                          • payload: { displayName: string; userId: number }
                                            • displayName: string

                                              The display name of the user who took the screenshot

                                            • userId: number

                                              The user ID of the user who took the screenshot

                                          Returns void

                                    Returns void

                                  • Parameters

                                    • event: "share-content-screenshot-taken"
                                    • listener: (payload: { displayName: string; userId: number }) => void
                                        • (payload: { displayName: string; userId: number }): void
                                        • Occurs when someone in the meeting takes a screenshot of the screen share

                                          category

                                          Screen share

                                          Parameters

                                          • payload: { displayName: string; userId: number }
                                            • displayName: string

                                              The display name of the user who took the screenshot

                                            • userId: number

                                              The user ID of the user who took the screenshot

                                          Returns void

                                    Returns void

                                  • Reclaims the host privilege if the user is now the host.

                                    • Only the original host can do this.

                                    Returns ExecutedResult

                                  • Removes the participant.

                                    • Only the host or manager can remove others.

                                    Parameters

                                    • userId: number

                                    Returns ExecutedResult

                                  • Revokes the manager permission from the participant.

                                    • Only the host can revoke manager permissions.

                                    Parameters

                                    • userId: number

                                    Returns ExecutedResult