有奖捉虫:行业应用 & 管理与支持文档专题 HOT

TUICallEvent API 简介

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

事件表

事件名
说明
被邀请通话
通话请求的事件
用户接听
用户进入通话
用户离开通话
用户更新
用户拒绝通话
用户无响应
用户忙线
通话被取消
通话未建立时,通话的各端都会抛出该事件
通话接通时抛出的事件
通话结束
SDK Ready 回调
被踢下线
切换通话模式
错误信息

INVITED

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

ON_CALL_RECEIVED

收到一个新的来电请求事件,被叫会收到,您可以通过监听这个事件,来决定是否显示通话接听界面。
注意:
v1.5.1+ 版本支持
let handleOnCallReceived = function(event) {
console.log(event)
};
tuiCallEngine.on(EVENT.ON_CALL_RECEIVED, handleOnCallReceived);
参数如下表所示:
参数
类型
含义
sponsor
String
邀请者
inviteeList
Array<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(EVENT.USER_ACCEPT, this.handleUserAccept, this);
参数如下表所示:
参数
类型
含义
userID
String
接听的用户 ID
userList
Array
未接听用户的信息(后续将废弃)

USER_ENTER

如果有用户同意进入通话,其他用户会收到该事件。
let handleUserEnter = function(event) {
console.log('用户进入通话')
}
tuiCallEngine.on(EVENT.USER_ENTER, this.handleUserEnter, this);
参数如下表所示:
参数
类型
含义
userID
String
进房的用户 ID
playerList
Array
房间中用户的推流信息

USER_LEAVE

有用户离开此次通话时,通话中的其他用户会收到该事件。
let handleUserLeave = function(event) {
console.log('用户离开通话')
}
tuiCallEngine.on(EVENT.USER_LEAVE, this.handleUserLeave, this);
参数如下表所示:
参数
类型
含义
userID
String
退房的用户 ID
playerList
Array
房间中用户的推流信息

USER_UPDATE

用户更新。
let handleUserUpdate = function(event) {
console.log('用户更新')
}
tuiCallEngine.on(EVENT.USER_UPDATE, this.handleUserUpdate, this)
参数如下表所示:
参数
类型
含义
pusher
String
更新后的自身推流信息
playerList
Array
更新后其他用户的推流信息

REJECT

通话被拒绝事件,在 1v1 通话中,只有主叫方会收到拒绝事件,在群组通话中,所有被邀请者都可以收到该事件。
let handleInviteeReject = function(event) {
console.log('用户拒绝通话')
}
tuiCallEngine.on(EVENT.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(EVENT.NO_RESP, this.handleNoResponse, this);
参数如下表所示:
参数
类型
含义
groupID
String
群ID, 唯一标识
sponsor
String
发起方的用户 ID
userIDList
Array<String>
触发超时无响应的用户列表
timeoutUserList
Array<String>
触发超时无响应的用户列表(后续将废弃)
inviteID
String
邀请 ID, 标识一次邀请

LINE_BUSY

用户忙线。
let handleLineBusy = function(event) {
console.log('用户忙线')
}
tuiCallEngine.on(EVENT.LINE_BUSY, this.handleLineBusy, this);
参数如下表所示:
参数
类型
含义
userID
String
忙线用户 ID
invitee
String
忙线用户 ID(后续将废弃)
inviteID
String
邀请 ID, 标识一次邀请
reason
string
line busy 表示忙线

CALLING_CANCEL

表示此次通话被主叫取消(取消原因有可能是主叫主动取消、也有可能是来自于通话超时取消),被叫会收到,您可以通过监听这个事件来实现类似未接来电等显示逻辑。
1. A 呼叫 B,A 挂断,A 会抛出该事件,userID 就是 A。
2. A 呼叫 B,B 一直接通超时,B 会抛出该事件,userID 是 B。
3. A 呼叫 B、C、D,B 接通后,A 和 B 都挂断,此时 C 拒绝,此时 B 也会抛出该事件,事件里的 userID 为 C。
注意:
计划后续废弃
let handleCallingCancel = function(event) {
console.log('通话被取消')
}
tuiCallEngine.on(EVENT.CALLING_CANCEL, this.handleCallingCancel, this);
参数如下表所示:
参数
类型
含义
?
userID
String
通话取消的用户 ID
?
invitee
String
通话取消的用户 ID(后续将废弃)
?
inviteID
String
邀请 ID, 标识一次邀请
?
callId
String
本次通话的唯一 ID。v1.5.1+ 版本支持
?
roomID
Number
此次通话的音视频房间 ID。v1.5.1+ 版本支持
?
callMediaType
Number
通话的媒体类型,视频通话、语音通话。v1.5.1+ 版本支持
?
callRole
String
角色,枚举类型:主叫、被叫。v1.5.1+ 版本支持
?
?
?
?
?

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.5.1+ 版本支持
let handleOnCallCanceled = function(event) {
console.log(event.userID);
};
tuiCallEngine.on(EVENT.ON_CALL_CANCELED, handleOnCallCanceled);
参数如下表所示:
参数
类型
含义
userID
String
通话取消的用户 ID
callId
String
本次通话的唯一 ID
roomID
Number
此次通话的音视频房间 ID
callMediaType
Number
通话的媒体类型,视频通话、语音通话
callRole
String
角色,枚举类型:主叫、被叫

ON_CALL_BEGIN

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

CALL_END

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

SDK_READY

SDK Ready 回调。
let handleSDKReady = function(event) {
console.log('SDK Ready 回调')
}
tuiCallEngine.on(EVENT.SDK_READY, this.handleSDKReady, this);

KICKED_OUT

被踢下线。
let handleKickedOut = function(event) {
console.log('被踢下线')
}
tuiCallEngine.on(EVENT.KICKED_OUT, this.handleKickedOut, this);

CALL_MODE

切换通话模式。
let handleCallMode = function(event) {
console.log('切换通话模式')
}
tuiCallEngine.on(EVENT.CALL_MODE, this.handleCallMode, this);

ERROR

监听 SDK 的错误信息。
let handleError = function(event) {
console.log('错误信息')
}
tuiCallEngine.on(EVENT.ERROR, this.handleError, this);
?
?


http://www.vxiaotou.com