tencent cloud

文档反馈

TUICallEvent

最后更新时间:2024-04-03 17:23:11

    TUICallEvent API 简介

    TUICallEvent API 是音视频通话组件的事件接口

    事件列表

    EVENT
    描述
    SDK 内部发生了错误
    SDK 进入 ready 状态时收到该事件
    重复登录,收到该事件说明被移出房间
    如果有用户接听,那么会收到此事件
    如果有用户同意进入通话,那么会收到此事件
    如果有用户同意离开通话,那么会收到此事件
    用户拒绝通话,会收到该事件
    邀请用户无应答,会收到该事件
    邀请方忙线,会收到该事件
    远端用户开启/关闭了摄像头, 会收到该事件
    远端用户开启/关闭了麦克风, 会收到该事件
    远端用户说话音量调整, 会收到该事件
    群聊更新邀请列表收到该事件
    被邀请进行通话,会收到该事件
    通话请求的事件
    通话未建立时,通话的各端都会抛出该事件
    通话接通时抛出的事件
    收到该事件说明本次通话结束了
    设备列表更新收到该事件
    通话类型切换收到该事件

    ERROR

    SDK 内部发生了错误,可以通过监听该事件,捕获底层 SDK 的内部错误。
    let onError = function(error) {
    console.log(error.code, error.msg);
    };
    tuiCallEngine.on(TUICallEvent.ERROR, onError);
    参数如下表所示:
    参数
    类型
    含义
    code
    int
    错误码
    msg
    String
    错误信息

    SDK_READY

    SDK 进入 ready 状态时收到该事件。
    let onSDKReady = function(event) {
    console.log(event);
    };
    tuiCallEngine.on(TUICallEvent.SDK_READY, onSDKReady);

    KICKED_OUT

    重复登录,收到该事件说明被踢出房间。
    let handleOnKickedOut = function(event) {
    console.log(event);
    };
    tuiCallEngine.on(TUICallEvent.KICKED_OUT, handleOnKickedOut);

    USER_ACCEPT

    如果有用户接听,其他用户都会收到该事件,userID 就是接听的用户。
    1. 1v1 通话下:被叫接通,主叫会抛出该事件。
    2. 群组通话下:A 呼叫 B、C,B 接通,A、C 都会抛出该事件,事件的 userID 都是 B。同理 C 接通,A、B 都会抛出该事件,事件的 userID 都是 C。
    let handleUserAccept = function(event) {
    console.log(event.userID);
    };
    tuiCallEngine.on(TUICallEvent.USER_ACCEPT, handleUserAccept);
    参数如下表所示:
    参数
    类型
    含义
    userID
    String
    接听的用户 ID

    USER_ENTER

    如果有用户同意进入通话,其他用户都会收到该事件,userID 就是同意进入通话的用户。
    let handleUserEnter = function(event) {
    console.log(event.userID);
    };
    tuiCallEngine.on(TUICallEvent.USER_ENTER, handleUserEnter);
    参数如下表所示:
    参数
    类型
    含义
    userID
    String
    进房的用户 ID

    USER_LEAVE

    有用户离开此次通话时,通话中的其他用户都会收到该事件,userID 就是离开通话的用户。
    let handleUserLeave = function(event) {
    console.log(event.userID);
    };
    tuiCallEngine.on(TUICallEvent.USER_LEAVE, handleUserLeave);
    参数如下表所示:
    参数
    类型
    含义
    userID
    String
    退房的用户 ID

    REJECT

    通话被拒绝事件
    1. 在 1v1 通话中,只有主叫方会收到拒绝事件,userID 就是被叫用户。
    2. 在群组通话中,所有被邀请者都可以收到该事件,userID 就是拒绝通话的用户。
    let handleInviteeReject = function(event) {
    console.log(event.userID);
    };
    tuiCallEngine.on(TUICallEvent.REJECT, handleInviteeReject);
    参数如下表所示:
    参数
    类型
    含义
    userID
    String
    拒绝通话的用户 ID

    NO_RESP

    邀请用户无应答事件。
    在 1v1 通话中,只有发起方会收到无人应答的事件。例如 A 邀请 B,B 不应答,A 可以收到该事件。
    在群组通话中,所有被邀请人均能收到该事件。例如 A 邀请 B、C 进入通话,B 不应答,A、C 均能收到该事件。
    let handleNoResponse = function(event) {
    console.log(event.sponsor, event.userIDList);
    };
    tuiCallEngine.on(TUICallEvent.NO_RESP, handleNoResponse);
    参数如下表所示:
    参数
    类型
    含义
    sponsor
    String
    发起方的用户 ID
    userIDList
    Array<String>
    触发超时无响应的用户列表

    LINE_BUSY

    通话忙线事件。
    let handleLineBusy = function(event) {
    console.log(event)
    };
    tuiCallEngine.on(TUICallEvent.LINE_BUSY, handleLineBusy);
    参数如下表所示:
    参数
    类型
    含义
    userID
    String
    忙线用户 ID

    USER_VIDEO_AVAILABLE

    远端用户开启/关闭了摄像头, 会收到该事件。
    let handleUserVideoChange = function(event) {
    console.log(event.userID, event.isVideoAvailable);
    };
    tuiCallEngine.on(TUICallEvent.USER_VIDEO_AVAILABLE, handleUserVideoChange);
    参数如下表所示:
    参数
    类型
    含义
    userID
    String
    远端用户 ID
    isVideoAvailable
    Boolean
    true 远端用户打开摄像头;false 远端用户关闭摄像头

    USER_AUDIO_AVAILABLE

    远端用户开启/关闭了麦克风, 会收到该事件。
    let handleUserAudioChange = function(event) {
    console.log(event.userID, event.isAudioAvailable);
    };
    tuiCallEngine.on(TUICallEvent.USER_AUDIO_AVAILABLE, handleUserAudioChange);
    参数如下表所示:
    参数
    类型
    含义
    userID
    String
    远端用户 ID
    isAudioAvailable
    Boolean
    true 远端用户打开麦克风;false 远端用户关闭麦克风

    USER_VOICE_VOLUME

    远端用户说话音量调整, 会收到该事件。
    let handleUserVoiceVolumeChange = function(event) {
    console.log(event.volumeMap);
    };
    tuiCallEngine.on(TUICallEvent.USER_VOICE_VOLUME, handleUserVoiceVolumeChange);
    参数如下表所示:
    参数
    类型
    含义
    volumeMap
    Array<Object>
    音量表,根据每个 userid 可以获取对应的音量大小,音量最小值0,音量最大值100

    GROUP_CALL_INVITEE_LIST_UPDATE

    群聊更新邀请列表收到该事件。
    let handleGroupInviteeListUpdate = function(event) {
    console.log(event.userIDList);
    };
    tuiCallEngine.on(TUICallEvent.GROUP_CALL_INVITEE_LIST_UPDATE, handleGroupInviteeListUpdate);
    参数如下表所示:
    参数
    类型
    含义
    userIDList
    Array<String>
    群组更新邀请列表

    INVITED

    收到一个新的来电请求事件,被叫会收到,您可以通过监听这个事件,来决定是否显示通话接听界面。
    注意:
    计划后续版本废弃
    let handleNewInvitationReceived = function(event) {
    console.log(event.sponsor, event.userIDList, event.isFromGroup, event.inviteData, event.inviteDate, event.inviteID);
    };
    tuiCallEngine.on(TUICallEvent.INVITED, handleNewInvitationReceived);
    参数如下表所示:
    参数
    类型
    含义
    sponsor
    String
    邀请者
    userIDList
    Array<String>
    同时还被邀请的人
    isFromGroup
    Boolean
    是否是群组通话
    inviteData
    Object
    呼叫数据
    inviteID
    String
    邀请 ID,标识一次邀请
    userData
    String
    扩展字段:用于在邀请信令中增加扩展信息
    callId
    String
    本次通话的唯一 ID。v1.4.6+ 版本支持
    roomID
    Number
    此次通话的音视频房间 ID。v1.4.6+ 版本支持
    callMediaType
    Number
    通话的媒体类型,视频通话、语音通话。v1.4.6+ 版本支持
    callRole
    String
    角色,枚举类型:主叫、被叫。v1.4.6+ 版本支持

    ON_CALL_RECEIVED

    收到一个新的来电请求事件,被叫会收到,您可以通过监听这个事件,来决定是否显示通话接听界面。
    注意:
    v1.4.6+ 版本支持
    let handleOnCallReceived = function(event) {
    console.log(event)
    };
    tuiCallEngine.on(TUICallEvent.ON_CALL_RECEIVED, handleOnCallReceived);
    参数如下表所示:
    参数
    类型
    含义
    sponsor
    String
    邀请者
    userIDList
    Array<String>
    同时还被邀请的人
    isFromGroup
    Boolean
    是否是群组通话
    inviteData
    Object
    呼叫数据
    inviteID
    String
    邀请 ID,标识一次邀请
    userData
    String
    扩展字段:用于在邀请信令中增加扩展信息
    callId
    String
    本次通话的唯一 ID
    roomID
    Number
    此次通话的音视频房间 ID
    callMediaType
    Number
    通话的媒体类型,视频通话、语音通话
    callRole
    String
    角色,枚举类型:主叫、被叫

    CALLING_CANCEL

    如果通话未建立,都会抛出该事件。您可以通过监听该事件来实现类似未接来电、重置 UI 状态等显示逻辑。通话未建立的场景如下:
    主叫取消:主叫抛出该事件,userID 为主叫;被叫也会抛出该事件,userID 为被叫;
    被叫超时:主叫会同时抛出 NO_RESPCALLING_CANCEL 事件,userID 为主叫;被叫抛出 CALLING_CANCEL 事件,userID 为被叫;
    被叫拒接:主叫会同时抛出 REJECTCALLING_CANCEL 事件,userID 为主叫;被叫抛出 CALLING_CANCEL 事件,userID 为被叫;
    被叫忙线:主叫会同时抛出 LINE_BUSYCALLING_CANCEL 事件,userID 为主叫;被叫抛出 CALLING_CANCEL 事件,userID 为被叫;
    注意:
    计划后续版本废弃
    let handleCallingCancel = function(event) {
    console.log(event.userID);
    };
    tuiCallEngine.on(TUICallEvent.CALLING_CANCEL, handleCallingCancel);
    参数如下表所示:
    参数
    类型
    含义
    userID
    String
    通话取消的用户 ID
    callId
    String
    本次通话的唯一 ID。v1.4.6+ 版本支持
    roomID
    Number
    此次通话的音视频房间 ID。v1.4.6+ 版本支持
    callMediaType
    Number
    通话的媒体类型,视频通话、语音通话。v1.4.6+ 版本支持
    callRole
    String
    角色,枚举类型:主叫、被叫。v1.4.6+ 版本支持

    ON_CALL_CANCELED

    如果通话未建立,都会抛出该事件。您可以通过监听该事件来实现类似未接来电、重置 UI 状态等显示逻辑。通话未建立的场景如下:
    主叫取消:主叫抛出该事件,userID 为主叫;被叫也会抛出该事件,userID 为被叫;
    被叫超时:主叫会同时抛出 NO_RESPCALLING_CANCEL 事件,userID 为主叫;被叫抛出 CALLING_CANCEL 事件,userID 为被叫;
    被叫拒接:主叫会同时抛出 REJECTCALLING_CANCEL 事件,userID 为主叫;被叫抛出 CALLING_CANCEL 事件,userID 为被叫;
    被叫忙线:主叫会同时抛出 LINE_BUSYCALLING_CANCEL 事件,userID 为主叫;被叫抛出 CALLING_CANCEL 事件,userID 为被叫;
    注意:
    v1.4.6+ 版本支持
    let handleOnCallCanceled = function(event) {
    console.log(event.userID);
    };
    tuiCallEngine.on(TUICallEvent.ON_CALL_CANCELED, handleOnCallCanceled);
    参数如下表所示:
    参数
    类型
    含义
    userID
    String
    通话取消的用户 ID
    callId
    String
    本次通话的唯一 ID
    roomID
    Number
    此次通话的音视频房间 ID
    callMediaType
    Number
    通话的媒体类型,视频通话、语音通话
    callRole
    String
    角色,枚举类型:主叫、被叫

    ON_CALL_BEGIN

    表示通话接通,主叫和被叫都可以收到,您可以通过监听这个事件来开启云端录制、内容审核等流程。
    注意:
    v1.4.6+ 版本支持
    let handleOnCallBegin = function(event) {
    console.log(event)
    };
    tuiCallEngine.on(TUICallEvent.ON_CALL_BEGIN, handleOnCallBegin);
    参数如下表所示:
    参数
    类型
    含义
    callId
    String
    本次通话的唯一 ID
    roomID
    Number
    此次通话的音视频房间 ID
    callMediaType
    Number
    通话的媒体类型,视频通话、语音通话
    callRole
    String
    角色,类型:主叫、被叫

    CALLING_END

    表示通话结束,主叫和被叫抛出该事件。您可以通过监听这个事件来显示通话时长、通话类型等信息,或者来停止云端的录制流程。
    let handleCallingEnd = function(event) {
    console.log(event.userID, event.);
    };
    tuiCallEngine.on(TUICallEvent.CALLING_END, handleCallingEnd);
    参数如下表所示:
    参数
    类型
    含义
    roomID
    Number
    此次通话的音视频房间 ID,目前仅支持数字房间号,后续版本会支持字符串房间号
    callMediaType
    Number
    通话的媒体类型,视频通话、语音通话
    callRole
    String
    角色,枚举类型:主叫('inviter')、被叫('invitee')、未知('')
    totalTime
    Number
    此次通话的时长,单位: 秒
    userID
    String
    通话结束的 userID。
    callId
    String
    本次通话的唯一 ID。v1.4.6+ 版本支持
    callEnd
    Number
    此次通话的时长(后续将废弃),单位: 秒

    DEVICED_UPDATED

    设备列表更新收到该事件。
    let handleDeviceUpdated = function({ microphoneList, cameraList, currentMicrophoneID, currentCameraID }) {
    console.log(microphoneList, cameraList, currentMicrophoneID, currentCameraID)
    };
    tuiCallEngine.on(TUICallEvent.DEVICED_UPDATED, handleDeviceUpdated);

    CALL_TYPE_CHANGED

    通话类型切换收到该事件。
    let handleCallTypeChanged = function({ oldCallType, newCallType }) {
    console.log(oldCallType, newCallType)
    };
    tuiCallEngine.on(TUICallEvent.CALL_TYPE_CHANGED, handleDeviceUpdated);
    参数如下表所示:
    参数
    类型
    含义
    oldCallType
    Number
    旧通话类型
    newCallType
    Number
    新通话类型
    
    
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持