房间相关事件回调接口

此接口定义了与房间操作相关的所有回调方法,包括房间状态变化、成员加入/离开、 消息接收等事件。应用程序可以实现此接口来处理这些事件。

interface JRTCRoomCallback {
    onRoomStateChanged?: (
        state: JRTCRoomState,
        oldState: JRTCRoomState,
    ) => void;
    onRoomPropertyChanged?: (changeParam: JRTCRoomPropChangeParam) => void;
    onJoin?: (result: boolean, reason: JRTCReasonCode, roomId: string) => void;
    onLeave?: (reason: JRTCReasonCode, roomId: string) => void;
    onKickUserResult?: (result: boolean, reason: string) => void;
    onQuery?: (
        operationId: number,
        result: boolean,
        reason: JRTCReasonCode,
        queryInfo: undefined | JRTCRoomQueryInfo,
    ) => void;
    onParticipantJoin?: (participant: JRTCRoomParticipant) => void;
    onParticipantLeft?: (
        participant: JRTCRoomParticipant,
        reason: JRTCReasonCode,
    ) => void;
    onParticipantUpdate?: (
        participant: JRTCRoomParticipant,
        changeParam: JRTCRoomParticipantChangeParam,
    ) => void;
    onMessageReceived?: (
        type: string,
        content: string,
        fromUserId: string,
    ) => void;
    onInviteSipUserResult?: (
        operationId: number,
        result: boolean,
        reason: JRTCReasonCode,
    ) => void;
    onDeliveryAbort?: (
        isShutDown: boolean,
        deliveryUserId: string,
        reason: string,
    ) => void;
    onEnableRemoteAdvancedRecordResult?: (
        result: boolean,
        error: string,
    ) => void;
}

Properties

onRoomStateChanged?: (state: JRTCRoomState, oldState: JRTCRoomState) => void

自身在房间中的状态变化回调

Type declaration

当自身在房间中的状态发生变化时,会收到此回调,例如加入房间、加入房间成功、离开回调等。

可能的状态值包括:

onRoomPropertyChanged?: (changeParam: JRTCRoomPropChangeParam) => void

房间属性变化回调

Type declaration

当房间的属性发生变化时,会收到此回调,例如房间中有成员发起屏幕共享、 录制状态发生变化等。通过 JRTCRoomPropChangeParam 对象可以 获取具体哪些属性发生了变化。

onJoin?: (result: boolean, reason: JRTCReasonCode, roomId: string) => void

加入房间结果回调

Type declaration

    • (result: boolean, reason: JRTCReasonCode, roomId: string): void
    • Parameters

      • result: boolean

        加入房间是否成功

        • true: 成功
        • false: 失败
      • reason: JRTCReasonCode

        加入失败原因,当 result 为 false 时该值有效

      • roomId: string

        房间标识

      Returns void

调用 JRTCRoom.join 接口后,会收到此回调通知加入结果。 如果加入失败,可以通过 reason 参数了解具体的失败原因。

onLeave?: (reason: JRTCReasonCode, roomId: string) => void

离开房间结果回调

Type declaration

调用 leave 接口后,会收到此回调通知离开结果。 reason 参数表示离开的原因,可能是主动离开或被服务器踢出等。

onKickUserResult?: (result: boolean, reason: string) => void

踢出成员结果回调

Type declaration

    • (result: boolean, reason: string): void
    • Parameters

      • result: boolean

        操作结果是否成功

        • true: 操作成功
        • false: 操作失败
      • reason: string

        失败原因描述

      Returns void

调用 kickUser 接口后,会收到此回调通知踢出结果。 如果操作失败,可以通过 reason 参数了解具体的失败原因。

onQuery?: (
    operationId: number,
    result: boolean,
    reason: JRTCReasonCode,
    queryInfo: undefined | JRTCRoomQueryInfo,
) => void

查询房间信息结果回调

Type declaration

    • (
          operationId: number,
          result: boolean,
          reason: JRTCReasonCode,
          queryInfo: undefined | JRTCRoomQueryInfo,
      ): void
    • Parameters

      • operationId: number

        操作ID,对应 query 接口返回值

      • result: boolean

        查询房间信息是否成功

        • true: 查询成功
        • false: 查询失败
      • reason: JRTCReasonCode

        查询失败原因,当 result 为 false 时该值有效

      • queryInfo: undefined | JRTCRoomQueryInfo

        查询到的房间信息,当失败时只需关注 roomId

      Returns void

调用 query 接口后,会收到此回调通知查询结果。 如果查询成功,可以通过 queryInfo 参数获取房间的详细信息。

onParticipantJoin?: (participant: JRTCRoomParticipant) => void

通话中有新成员加入回调

Type declaration

当第三方成员加入通话时,已在通话中的所有成员会收到此回调。 新加入的成员本身不会收到此回调。

应用应在收到此回调时更新UI界面,添加新成员的视频窗口(如果有视频), 并可能需要调整布局以适应新的成员数量。可通过participant对象获取 新成员的ID、名称、角色等信息。

onParticipantLeft?: (
    participant: JRTCRoomParticipant,
    reason: JRTCReasonCode,
) => void

通话中有成员离开回调

Type declaration

通话中有成员离开时,剩余的成员会收到此回调。 离开的成员本身不会收到此回调。

应用应在收到此回调时更新UI界面,移除离开成员的视频窗口, 并可能需要调整布局。特别是座席成员离开时,可能需要显示通话即将结束的提示。 可通过participant对象识别离开成员的身份和角色。

onParticipantUpdate?: (
    participant: JRTCRoomParticipant,
    changeParam: JRTCRoomParticipantChangeParam,
) => void

通话中成员属性更新回调

Type declaration

当通话中成员的属性发生变化时,如音量变化、音视频状态变化等,会触发此回调。 常见的属性变化包括:

  • volume - 成员实时音量值
  • audio - 音频上传状态变更
  • video - 视频上传状态变更

应用应根据属性变化更新UI显示,如显示音量指示器、切换摄像头开启/关闭图标、 在视频暂停时显示占位图像等。

onMessageReceived?: (type: string, content: string, fromUserId: string) => void

接收房间消息的回调

Type declaration

    • (type: string, content: string, fromUserId: string): void
    • Parameters

      • type: string

        消息类型

      • content: string

        消息内容

      • fromUserId: string

        消息发送成员的用户ID

      Returns void

当房间中有成员调用 sendMessage 接口发送消息时, 接收消息的成员会收到此回调。type 和 content 参数对应发送消息时的参数, fromUserId 表示消息发送者的用户ID。

onInviteSipUserResult?: (
    operationId: number,
    result: boolean,
    reason: JRTCReasonCode,
) => void

邀请SIP用户结果回调

Type declaration

    • (operationId: number, result: boolean, reason: JRTCReasonCode): void
    • Parameters

      • operationId: number

        操作ID,对应 inviteSipUser 接口返回值

      • result: boolean

        邀请用户是否成功

      • reason: JRTCReasonCode

        失败原因,当 result 为 false 时该值有效

      Returns void

调用 inviteSipUser 接口邀请SIP用户(如落地电话)时, 会收到此回调通知邀请结果。如果邀请成功,被邀请的用户会作为新成员加入房间, 并触发 onParticipantJoin 回调。

onDeliveryAbort?: (
    isShutDown: boolean,
    deliveryUserId: string,
    reason: string,
) => void

录制异常回调

Type declaration

    • (isShutDown: boolean, deliveryUserId: string, reason: string): void
    • Parameters

      • isShutDown: boolean

        录制异常时服务器是否自动结束通话,true表示自动结束通话,false表示不自动结束通话

      • deliveryUserId: string

        录制异常的用户ID

      • reason: string

        录制异常的原因

      Returns void

当远程录制服务异常退出时,会触发此回调通知所有通话成员。

应用应在收到此回调时向用户显示相应提示,如"录制服务异常"。 如果isShutDowntrue,还应提示用户通话即将结束, 此时通话会被服务器自动终止。

onEnableRemoteAdvancedRecordResult?: (result: boolean, error: string) => void

开启通用化远程录制结果回调

Type declaration

    • (result: boolean, error: string): void
    • Parameters

      • result: boolean

        开启远程录制是否成功

        • true: 成功
        • false: 失败
      • error: string

        失败错误描述,当 result 为 false 时该值有效

      Returns void

调用开启远程增强录制接口后,会收到此回调通知开启结果。 如果开启失败,可以通过 error 参数了解具体的失败原因。 增强录制支持多路混流录制和分流录制同时输出。