TUICallEvent API 是音视频通话组件的事件接口。
说明:
为提供更优质的音视频通信能力,原 tuicall-engine-wx 包已正式停止维护,建议开发者迁移至 @trtc/call-engine-lite-wx 新包。
新包对接口进行了优化调整,部分旧版接口不再兼容,同步提供更简洁、稳定的新接口方案。
TUICallEvent 概览
事件名 | 说明 |
通话请求的事件 | |
用户接听 | |
用户进入通话 | |
用户离开通话 | |
用户更新 | |
用户拒绝通话 | |
用户无响应 | |
用户忙线 | |
通话未建立时,通话的各端都会抛出该事件 | |
通话接通时抛出的事件 | |
通话结束 | |
被踢下线 | |
错误信息 | |
所有用户网络质量的事件 | |
xxxx 用户是否有视频流的事件 | |
xxxx 用户是否有音频流的事件 |
TUICallEvent 详情
import TUICallEngine, { TUICallEvent } from '@trtc/call-engine-lite-wx';
ON_CALL_RECEIVED
收到一个新的来电请求事件,被叫会收到,您可以通过监听这个事件,来决定是否显示通话接听界面。
let handleOnCallReceived = function(event) {console.log(event)};tuiCallEngine.on(TUICallEvent.ON_CALL_RECEIVED, handleOnCallReceived, this);
参数如下表所示:
参数 | 类型 | 含义 |
sponsor | String | 邀请者 |
userIDList | Array<String> | 同时还被邀请的人 |
isFromGroup | Boolean | 是否是群组通话 |
inviteData | Object | 呼叫数据 |
inviteID | String | 邀请 ID,标识一次邀请 |
userData | String | 扩展字段:用于在邀请信令中增加扩展信息 |
callId | String | 本次通话的唯一 ID。 |
roomID | Number | 此次通话的音视频房间 ID。 |
callMediaType | Number | 通话的媒体类型,视频通话、语音通话。 |
callRole | String | 角色,枚举类型:主叫、被叫。 |
USER_ACCEPT
如果有用户接听,其他用户会收到该事件。
let handleUserAccept = function(event) {console.log('用户接听')}tuiCallEngine.on(TUICallEvent.USER_ACCEPT, this.handleUserAccept, this);
参数如下表所示:
参数 | 类型 | 含义 |
userID | String | 接听的用户 ID |
userList | Array | 未接听用户的信息(后续将废弃) |
USER_ENTER
如果有用户同意进入通话,其他用户会收到该事件。
let handleUserEnter = function(event) {console.log('用户进入通话')}tuiCallEngine.on(TUICallEvent.USER_ENTER, this.handleUserEnter, this);
参数如下表所示:
参数 | 类型 | 含义 |
userID | String | 进房的用户 ID |
playerList | Array | 房间中用户的推流信息 |
USER_LEAVE
有用户离开此次通话时,通话中的其他用户会收到该事件。
let handleUserLeave = function(event) {console.log('用户离开通话')}tuiCallEngine.on(TUICallEvent.USER_LEAVE, this.handleUserLeave, this);
参数如下表所示:
参数 | 类型 | 含义 |
userID | String | 退房的用户 ID |
playerList | Array | 房间中用户的推流信息 |
USER_UPDATE
用户更新。
let handleUserUpdate = function(event) {console.log('用户更新')}tuiCallEngine.on(TUICallEvent.USER_UPDATE, this.handleUserUpdate, this)
参数如下表所示:
参数 | 类型 | 含义 |
pusher | String | 更新后的自身推流信息 |
playerList | Array | 更新后其他用户的推流信息 |
REJECT
通话被拒绝事件,在 1v1 通话中,只有主叫方会收到拒绝事件,在群组通话中,所有被邀请者都可以收到该事件。
let handleInviteeReject = function(event) {console.log('用户拒绝通话')}tuiCallEngine.on(TUICallEvent.REJECT, this.handleInviteeReject, this);
参数如下表所示:
参数 | 类型 | 含义 |
userID | String | 拒绝通话的用户 ID |
invitee | String | 拒绝通话的用户 ID(后续将废弃) |
inviteID | String | 邀请 ID, 标识一次邀请 |
reason | String | reject 表示拒绝 |
NO_RESP
邀请用户无应答。
在C2C通话中,只有发起方会收到无人应答的回调 例如 A 邀请 B、C 进入通话,B不应答,A可以收到该回调,但C不行。
在IM群组通话中,所有被邀请人均能收到该回调 例如 A 邀请 B、C 进入通话,B不应答,A、C均能收到该回调。
let handleNoResponse = function(event) {console.log('用户无响应')}tuiCallEngine.on(TUICallEvent.NO_RESP, this.handleNoResponse, this);
参数如下表所示:
参数 | 类型 | 含义 |
groupID | String | 群ID, 唯一标识 |
sponsor | String | 发起方的用户 ID |
userIDList | Array<String> | 触发超时无响应的用户列表 |
inviteID | String | 邀请 ID, 标识一次邀请 |
LINE_BUSY
用户忙线。
let handleLineBusy = function(event) {console.log('用户忙线')}tuiCallEngine.on(TUICallEvent.LINE_BUSY, this.handleLineBusy, this);
参数如下表所示:
参数 | 类型 | 含义 |
userID | String | 忙线用户 ID |
inviteID | String | 邀请 ID, 标识一次邀请 |
reason | String | line busy 表示忙线 |
ON_CALL_NOT_CONNECTED
如果通话未建立,都会抛出该事件。
let handleOnCallCanceled = function(event) {console.log(event.userID);};tuiCallEngine.on(TUICallEvent.ON_CALL_CANCELED, handleOnCallCanceled, this);
参数如下表所示:
参数 | 类型 | 含义 |
userID | String | 通话取消的用户 ID |
callId | String | 本次通话的唯一 ID |
roomID | Number | 此次通话的音视频房间 ID |
callMediaType | Number | 通话的媒体类型,视频通话、语音通话 |
callRole | String | 角色,枚举类型:主叫、被叫 |
ON_CALL_BEGIN
表示通话接通,主叫和被叫都可以收到,您可以通过监听这个事件来开启云端录制、内容审核等流程。
let handleOnCallBegin = function(event) {console.log(event)};tuiCallEngine.on(TUICallEvent.ON_CALL_BEGIN, handleOnCallBegin, this);
参数如下表所示:
参数 | 类型 | 含义 |
callId | String | 本次通话的唯一 ID |
roomID | Number | 此次通话的音视频房间 ID |
callMediaType | Number | 通话的媒体类型,视频通话、语音通话 |
callRole | String | 角色,类型:主叫、被叫 |
ON_CALL_END
表示通话挂断,主叫和被叫都可以收到,您可以通过监听这个事件来显示通话时长、通话类型等信息,或者来停止云端的录制流程。
let handleCallingEnd = function(event) {console.log('通话结束')}tuiCallEngine.on(TUICallEvent.CALL_END, this.handleCallingEnd, this);
参数如下表所示:
参数 | 类型 | 含义 |
roomID | Number | 此次通话的音视频房间 ID,目前仅支持数字房间号,后续版本会支持字符串房间号 |
callMediaType | Number | 通话的媒体类型,视频通话、语音通话 |
callRole | String | 角色,枚举类型:主叫('inviter')、被叫('invitee')、未知('') |
totalTime | Number | 此次通话的时长,单位: 秒 |
userID | String | 表示引起通话结束 userID |
callId | String | 本次通话的唯一 ID。 |
KICKED_OUT
被踢下线。
let handleKickedOut = function(event) {console.log('被踢下线')}tuiCallEngine.on(TUICallEvent.KICKED_OUT, this.handleKickedOut, this);
ERROR
监听 SDK 的错误信息。
let handleError = function(event) {console.log('错误信息')}tuiCallEngine.on(TUICallEvent.ERROR, this.handleError, this);
ON_USER_NETWORK_QUALITY_CHANGED
所有用户网络质量的事件。
let handleOnUserNetworkQualityChange = function(event) {console.log(event.networkQualityList);};tuiCallEngine.on(TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED, this.handleOnUserNetworkQualityChange, this);
参数如下表所示:
参数 | 类型 | 含义 |
networkQualityList | Array<Object> | 网络状态,根据 userID 可以获取对应用户当前的网络质量。例如: networkQualityList: [{ userId: quality }] 。网络质量说明: quality = 0,网络状况未知 quality = 1,网络状况极佳 quality = 2,网络状况较好 quality = 3,网络状况一般 quality = 4,网络状况差 quality = 5,网络状况极差 quality = 6,网络链接已断开 |
USER_VIDEO_AVAILABLE
视频通话中一个用户开启/关闭了摄像头, 通话的其他用户都会抛出该事件。例如:A 和 B 在进行视频通话,A 开/关摄像头,B 会抛出该事件。
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
音视频通话中一个用户开启/关闭了麦克风, 通话的其他用户都会抛出该事件。例如:A 和 B 在进行音视频通话,A 开/关麦克风,B 会抛出该事件。
let handleUserAudioChange = function(event) {console.log(event.userID, event.isAudioAvailable);};tuiCallEngine.on(TUICallEvent.USER_AUDIO_AVAILABLE, handleUserAudioChange);
参数如下表所示:
参数 | 类型 | 含义 |
userID | String | 开/关麦克风的用户 ID |
isAudioAvailable | Boolean | true 用户打开麦克风;false 用户关闭麦克风 |