logo
当前页

监听进出房间回调

功能概述

ZEGO UIKit 允许设置部分功能参数,便于开发者在生命周期内触发并监听各种事件。

实现流程

  • 如需监听加入房间的回调,请调用 onJoinRoom 函数,该函数以将房间中的所有用户(一个数组)作为参数。
  • 如需监听离开房间的回调,请调用 onLeaveRoom 函数,该函数以房间中的所有用户(一个数组)作为参数。
// ....
zp.joinRoom({
    // ...,
    onJoinRoom: () => {
        // 添加您的自定义逻辑
    },
    onLeaveRoom: () => {
       // 添加您的自定义逻辑
    }
    // ...
});

完整参数示例

有关更多回调,请根据需要查看完整的参数示例:

declare interface ZegoCloudRoomConfig {
  // 1 UI控件
  // 1.1 全局
  container?: HTMLElement | undefined | null; // 组件容器。
  maxUsers?: number; // 通话参与人数范围为 [2-20]。默认值为无限制。
  scenario?: {
    mode?: ScenarioModel; // 场景选择。
    config?: ScenarioConfig[ScenarioModel]; // 相应场景的具体配置。
  };
  console?: ConsoleLevel; // 用于问题定位,不是常规设置。设置此项可以决定要打印的日志的严重程度。
  screenSharingConfig?: {
    resolution?: ScreenSharingResolution;
    width?: number;
    height?: number;
    frameRate?: number;
    maxBitRate?: number;
    onError?: (errorCode: number) => string | undefined // 屏幕共享失败回调,若需要自定义提示文本可根据错误码返回对应字符串,若需要自定义 UI 则返回空字符串。
  }; // 屏幕共享设置,分辨率设置
  language?: ZegoUIKitLanguage; // 设置 UIKit 语言

  // 1.2 加入前页面
  showPreJoinView?: boolean; // 是否显示加入前页面。默认显示。
  preJoinViewConfig?: {
    title?: string; // 加入前页面的标题。默认为“进入房间”。
  };
  turnOnMicrophoneWhenJoining?: boolean; // 加入通话时是否开启麦克风。默认开启。
  turnOnCameraWhenJoining?: boolean; // 加入通话时是否开启摄像头。默认开启。
  useFrontFacingCamera?: boolean; // 加入房间时是否使用前置摄像头。默认使用前置摄像头。
  videoResolutionDefault?: VideoResolution; // 默认视频分辨率。
  enableStereo?: boolean; // 是否开启立体声模式。默认关闭。

  // 1.3 房间页面
  // 您可以使用此按钮关闭其他参与者的摄像头。
  showTurnOffRemoteCameraButton?: boolean; // 是否显示关闭远程摄像头的按钮。默认不显示。
  // 您可以使用此按钮静音其他参与者的麦克风。
  showTurnOffRemoteMicrophoneButton?: boolean; // 是否显示关闭远程麦克风的按钮。默认不显示。
  showMyCameraToggleButton?: boolean; // 是否显示切换我的摄像头的按钮。默认显示。
  showMyMicrophoneToggleButton?: boolean; // 是否显示切换我的麦克风的按钮。默认显示。
  showAudioVideoSettingsButton?: boolean; // 是否显示音视频设置的按钮。默认显示。
  showTextChat?: boolean; // 是否显示右侧的文本聊天。默认显示。
  showUserList?: boolean; // 是否显示参与者列表。默认显示。
  showRemoveUserButton?: boolean; // 是否显示移除参与者的按钮。默认不显示。
  lowerLeftNotification?: {
    showUserJoinAndLeave?: boolean; // 是否在左下角显示参与者加入和离开的通知。默认显示。
    showTextChat?: boolean; // 是否在左下角显示最新的消息。默认显示。
  };
  branding?: {
    logoURL?: string; // 品牌LOGO的URL。
  };
  layout?: "Sidebar" | "Grid" | "Auto"; // 布局模式。默认使用自动模式。
  showLayoutButton?: boolean; // 是否显示切换布局的按钮。默认显示。
  showNonVideoUser?: boolean; // 是否显示无视频的参与者。默认显示。
  showOnlyAudioUser?: boolean; // 是否显示仅音频参与者。默认显示。
  sharedLinks?: { 
    name?: string; 
    url?: string }[]; // 生成的共享链接的描述。
  showScreenSharingButton?: boolean; // 是否显示屏幕共享按钮。默认显示。
  showPinButton?: boolean; // 是否显示固定按钮。默认显示。
  whiteboardConfig?: {
    showAddImageButton?: boolean; // 默认为 false。要使用此功能,请激活文件共享功能,然后导入插件。否则,将出现此提示:“添加图像失败,不支持此功能。”
    showCreateAndCloseButton?: boolean; // 是否显示用于创建/关闭白板的按钮。默认显示。
  };
  showRoomTimer?: boolean; // 是否显示计时器。默认不显示。
  showRoomDetailsButton?: boolean; // 是否显示查看房间详情的按钮。默认显示。
  showInviteToCohostButton?: boolean; // 是否显示邀请观众连麦的按钮。
  showRemoveCohostButton?: boolean; // 是否显示下麦连麦观众的按钮。
  showRequestToCohostButton?: boolean; // 是否显示请求连麦的按钮。
  rightPanelExpandedType?: RightPanelExpandedType; // 控制右侧面板显示的信息类型,默认显示“无”。
  autoHideFooter?: boolean; // 是否自动隐藏底部工具栏,默认自动隐藏。仅适用于移动浏览器。
  enableUserSearch?: boolean; // 是否启用用户搜索功能,默认为false。
  showMoreButton?: boolean; // 是否显示更多按钮,默认true
  showUserName?: boolean; // 是否显示用户名称,默认true
  hideUsersById?: string[]; // 隐藏指定用户id对应的画面
  videoViewConfig?: {
    userID?: string; // 用户ID
    showAvatarWhenCameraOff?: boolean; // 摄像头关闭时是否显示用户头像,默认true
  }[];
  backgroundUrl?: string; // 背景图
  liveNotStartedTextForAudience?: string; // 自定义观众端直播开始前展示的文本
  startLiveButtonText?: string; // 自定义开始直播按钮文本
  // 通话中邀请用户时,邀请用户窗口将出现在邀请方,如果您想隐藏此视图,请将其设置为false。默认展示。
  // 您可以在此视图中取消对此用户的邀请。
  showWaitingCallAcceptAudioVideoView?: boolean;
  // 通话中呼叫邀请列表配置
  callingInvitationListConfig?: {
    waitingSelectUsers: ZegoUser[]; // 等待选择的成员列表
    defaultChecked?: boolean; // 是否默认选中, 默认true
  };

  // 1.4 离开房间页面
  showLeavingView?: boolean; // 是否显示离开房间页面。默认显示。
  showLeaveRoomConfirmDialog?: boolean; // 离开房间时是否显示确认弹窗,默认为true
  leaveRoomDialogConfig?: {
    titleText?: string, // 自定义弹窗标题
    descriptionText?: string, // 自定义弹窗描述
  }

  // 2 相关事件回调
  onJoinRoom?: () => void; // 加入房间时触发此回调函数。
  onLeaveRoom?: () => void; // 离开房间时触发此回调函数。
  onUserJoin?: (users: ZegoUser[]) => void; // 房间内有参与者加入时触发此回调函数。
  onUserLeave?: (users: ZegoUser[]) => void; // 房间内有参与者离开时触发此回调函数。
  onUserAvatarSetter?: (user: ZegoUser[]) => void; // 设置用户头像的回调函数。
  onLiveStart?: (user: ZegoUser) => void; // 直播开始时的回调函数。
  onLiveEnd?: (user: ZegoUser) => void; // 直播结束时的回调函数。
  onYouRemovedFromRoom?: () => void; // 被移出房间时的回调函数。
  onInRoomMessageReceived?: (messageInfo: InRoomMessageInfo) => void; // 收到房间内聊天消息时的回调函数。
  onInRoomCustomCommandReceived?: (command: ZegoSignalingInRoomCommandMessage[]) => void;
  onReturnToHomeScreenClicked?: () => void; // 点击“返回主屏幕”按钮时触发此回调函数。设置此回调函数后,点击按钮将不会导航到主屏幕;而是您可以在此处添加自己的页面导航逻辑。
}

// 这是一个隐藏加入前页面的示例:
zp.joinRoom({
  container: document.querySelector("#root"),
  showPreJoinView: false
});

Previous

使用白板

Next

房间消息