多方通话2.0相关事件回调接口

此接口定义了多方通话2.0过程中可能触发的各种事件回调方法,包括通话加入/离开、 邀请处理、成员变更、消息传递和录制状态等事件。应用可以通过实现这些回调 方法来响应通话中的各种状态变化。

interface JRTCCallCallback {
    onJoin?: (result: boolean, reasonCode: JRTCReasonCode) => void;
    onLeave?: (serialId: string, reasonCode: JRTCReasonCode) => void;
    onInviteResult?: (
        operatorId: number,
        result: boolean,
        reason: string,
    ) => void;
    onCancelInviteResult?: (
        operatorId: number,
        result: boolean,
        reason: string,
    ) => void;
    onAcceptInviteResult?: (
        operatorId: number,
        result: boolean,
        reason: string,
    ) => void;
    onRejectInviteResult?: (
        operatorId: number,
        result: boolean,
        reason: string,
    ) => void;
    onInviteReceived?: (param: JRTCCallExtraParam) => void;
    onInviteCanceled?: (param: JRTCCallExtraParam) => void;
    onInviteAccepted?: (param: JRTCCallExtraParam) => void;
    onInviteRejected?: (param: JRTCCallExtraParam) => void;
    onParticipantJoin?: (participant: JRTCRoomParticipant) => void;
    onParticipantLeft?: (
        participant: JRTCRoomParticipant,
        reason: JRTCReasonCode,
    ) => void;
    onParticipantUpdate?: (
        participant: JRTCRoomParticipant,
        changeParam: JRTCRoomParticipantChangeParam,
    ) => void;
    onKickUserResult?: (result: boolean) => void;
    onCallPropertyChanged?: (propChangeParam: JRTCRoomPropChangeParam) => void;
    onMessageSendResult?: (
        operatorId: number,
        result: boolean,
        error: JRTCError,
    ) => void;
    onMessageReceived?: (
        content: undefined | string,
        contentType: undefined | string,
        messageType: JRTCCallCenterMessageType,
        fromUserId: string,
    ) => void;
    onDeliveryAbort?: (
        isShutDown: boolean,
        deliveryUserId: string,
        reason: string,
    ) => void;
}

Properties

onJoin?: (result: boolean, reasonCode: JRTCReasonCode) => void

加入通话结果回调

Type declaration

    • (result: boolean, reasonCode: JRTCReasonCode): void
    • Parameters

      • result: boolean

        加入通话是否成功

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

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

      Returns void

调用 join 接口成功后,会收到此回调。

onLeave?: (serialId: string, reasonCode: JRTCReasonCode) => void

离开通话结果回调

Type declaration

调用 leave 接口成功后,会收到此回调。

onInviteResult?: (operatorId: number, result: boolean, reason: string) => void

邀请结果回调

Type declaration

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

      • operatorId: number

        操作ID,对应 invite 的返回值

      • result: boolean

        邀请操作是否成功

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

        邀请失败原因,当 result 为 false 时有效

      Returns void

用于通知应用邀请其他用户加入通话的操作结果。

onCancelInviteResult?: (
    operatorId: number,
    result: boolean,
    reason: string,
) => void

取消邀请结果回调

Type declaration

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

      • operatorId: number

        操作ID,对应 cancelInvite 的返回值

      • result: boolean

        取消邀请操作是否成功

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

        取消邀请失败原因,当 result 为 false 时有效

      Returns void

用于通知应用取消邀请操作的结果。

onAcceptInviteResult?: (
    operatorId: number,
    result: boolean,
    reason: string,
) => void

接受邀请结果回调

Type declaration

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

      • operatorId: number

        操作ID,对应 acceptInvite 的返回值

      • result: boolean

        接受邀请操作是否成功

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

        接受邀请失败原因,当 result 为 false 时有效

      Returns void

用于通知应用接受邀请操作的结果。

onRejectInviteResult?: (
    operatorId: number,
    result: boolean,
    reason: string,
) => void

拒绝邀请结果回调

Type declaration

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

      • operatorId: number

        操作ID,对应 rejectInvite 的返回值

      • result: boolean

        拒绝邀请操作是否成功

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

        拒绝邀请失败原因,当 result 为 false 时有效

      Returns void

用于通知应用拒绝邀请操作的结果。

onInviteReceived?: (param: JRTCCallExtraParam) => void

收到邀请通知

Type declaration

当收到其他用户的通话邀请时触发此回调,应用可根据参数内容显示来电界面。

onInviteCanceled?: (param: JRTCCallExtraParam) => void

对方取消邀请通知

Type declaration

当邀请方取消通话邀请时触发此回调,应用应关闭来电界面。

onInviteAccepted?: (param: JRTCCallExtraParam) => void

对方接受邀请通知

Type declaration

当被邀请方接受通话邀请时触发此回调,应用可切换到通话界面。

onInviteRejected?: (param: JRTCCallExtraParam) => void

对方拒绝邀请通知

Type declaration

当被邀请方拒绝通话邀请时触发此回调,应用可显示相应提示。

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显示,如显示音量指示器、切换摄像头开启/关闭图标、 在视频暂停时显示占位图像等。

onKickUserResult?: (result: boolean) => void

成员踢出通话结果回调

Type declaration

    • (result: boolean): void
    • Parameters

      • result: boolean

        踢出操作结果

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

      Returns void

调用踢出成员接口后,会收到此回调,通知操作结果。

onCallPropertyChanged?: (propChangeParam: JRTCRoomPropChangeParam) => void

通话属性变化回调

Type declaration

当通话的属性发生变化时,如屏幕共享状态变更、录制状态变更等,会触发此回调。

重点关注屏幕共享属性,当screenSharetrue时, 应用需处理屏幕共享相关事件。可通过getShareStreamIdgetShareUserId获取共享画面的流ID和用户ID,用于渲染共享内容。 当屏幕共享停止时,应及时停止渲染并释放相关资源。

onMessageSendResult?: (
    operatorId: number,
    result: boolean,
    error: JRTCError,
) => void

消息发送结果回调

Type declaration

    • (operatorId: number, result: boolean, error: JRTCError): void
    • Parameters

      • operatorId: number

        操作ID,对应 sendMessage 的返回值

      • result: boolean

        发送结果是否成功

        • true: 发送成功
        • false: 发送失败
      • error: JRTCError

        发送失败错误信息,当 result 为 false 时有效

      Returns void

发送消息后会触发此回调,通知消息发送结果。

onMessageReceived?: (
    content: undefined | string,
    contentType: undefined | string,
    messageType: JRTCCallCenterMessageType,
    fromUserId: string,
) => void

收到消息回调

Type declaration

    • (
          content: undefined | string,
          contentType: undefined | string,
          messageType: JRTCCallCenterMessageType,
          fromUserId: string,
      ): void
    • Parameters

      • content: undefined | string

        消息内容

      • contentType: undefined | string

        消息内容类型

      • messageType: JRTCCallCenterMessageType

        消息归属类型

      • fromUserId: string

        发送方的用户ID

      Returns void

通话中的访客和座席可分别调用sendMessage 接口发送消息,接收方会通过此回调获取消息。

消息归属类型包括:

  • UNKNOWN - 未知消息类型
  • ONE_TO_ONE - 一对一消息
  • GROUP - 群发消息(发送给通话中所有成员)

应用应根据消息类型和内容更新聊天界面,如在聊天窗口显示接收到的消息。 可通过fromUserId识别消息发送者,并可能需要根据身份显示不同的样式。

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,还应提示用户通话即将结束, 此时通话会被服务器自动终止。