TUICallEvent
TUICallEvent API 简介
TUICallEvent API 是音视频通话组件的事件接口。
Event | 含义 |
通话过程中错误回调 | |
通话请求的回调 | |
通话取消的回调 | |
通话接通的回调 | |
通话结束的回调 | |
xxxx 用户拒绝通话的回调 | |
xxxx 用户不响应的回调 | |
xxxx 用户忙线的回调 | |
xxxx 用户加入通话的回调 | |
xxxx 用户离开通话的回调 | |
通话的媒体类型发生改变的回调 | |
当前用户被踢下线 | |
在线时票据过期 | |
xxx 用户是否有视频流的回调 | |
xxx 用户是否有音频流的回调 | |
所有用户音量大小的反馈回调 | |
所有用户网络质量的反馈回调 |
事件详情
onError
错误回调。
function onListener(type: TUICallEvent, params: any) {if (type === TUICallEvent.onCallBegin) {console.log("code:" + params.errorCode + ",message:" + params.message)}}TUICallKit.on(onListener);
参数 | 类型 | 含义 |
errorCode | Number | |
message | String | 错误信息 |
onCallReceived
收到一个新的来电请求回调。
function onListener(type: TUICallEvent, params: any) {if (type === TUICallEvent.onCallReceived) {console.log("callerId:" + params.callerId+ ",calleeIdList:" + params.calleeIdList+ ",groupId:" + params.groupId+ ",callMediaType:" + params.callMediaType+ ",userData:" + params.userData)}}TUICallKit.on(onListener);
参数 | 类型 | 含义 |
callerId | String | 主叫 ID(邀请方) |
calleeIdList | Array<String> | 被叫 ID 列表(被邀请方) |
groupId | String | 群组通话 ID |
callMediaType | Number | 通话的媒体类型,比如视频通话、语音通话。 params.callMediaType = 0 :语音通话 params.callMediaType = 1 :视频通话 |
userData | String | 用户增加的扩展字段。 |
onCallCancelled
表示此次通话主叫取消、被叫超时、拒接等,涉及多个场景。
主叫取消:主叫收到该回调(callerId 为自己);被叫收到该回调(callerId 为主叫的 ID)
被叫超时:主叫会同时收到 onUserNoResponse 和 onCallCancelled 回调(callerId 是自己的 ID);被叫收到 onCallCancelled 回调(callerId 是自己的 ID)
被叫拒接:主叫会同时收到 onUserReject 和 onCallCancelled 回调(callerId 是自己的 ID);被叫收到 onCallCancelled 回调(callerId 是自己的 ID)
被叫忙线:主叫会同时收到 onUserLineBusy 和 onCallCancelled 回调(callerId 是自己的 ID)
异常中断:被叫接收通话失败,收到该回调(callerId 是自己的 ID)
function onListener(type: TUICallEvent, params: any) {if (type === TUICallEvent.onCallCancelled) {console.log("callerId:" + params.callerId)}}TUICallKit.on(onListener);
参数 | 类型 | 含义 |
callerId | String | 主叫 ID(邀请方) |
onCallBegin
表示通话接通,主叫和被叫都可以收到,您可以通过监听这个事件来开启云端录制、内容审核等流程。
function onListener(type: TUICallEvent, params: any) {if (type === TUICallEvent.onCallBegin) {console.log("callerId:" + params.callerId)}}TUICallKit.on(onListener);
参数 | 类型 | 含义 |
roomId | roomId.intRoomId:此次通话的音视频房间 ID (int 类型) roomId.strRoomId:此次通话的音视频房间 ID (String 类型) | |
callMediaType | Number | 通话的媒体类型,视频通话、语音通话 params.callMediaType = 0:语音通话 params.callMediaType = 1:视频通话 |
callRole | Number | 角色,枚举类型:主叫、被叫。 params.callRole = 0:未知类型。 params.callRole = 1:主叫(邀请方)。 params.callRole = 2:被叫(被邀请方)。 |
onCallEnd
表示通话挂断,主叫和被叫都可以收到,您可以通过监听这个事件来显示通话时长、通话类型等信息,或者来停止云端的录制流程。
function onListener(type: TUICallEvent, params: any) {if (type === TUICallEvent.onCallEnd) {console.log("strRoomId:" + params.roomId.strRoomId+ "intRoomId:" + params.roomId.intRoomId+ "callMediaType:" + params.callMediaType+ "callRole:" + params.callRole+ "totalTime" + params.totalTime);}}TUICallKit.on(onListener);
参数 | 类型 | 含义 |
roomId | roomId.intRoomId:此次通话的音视频房间 ID (int 类型) roomId.strRoomId:此次通话的音视频房间 ID (String 类型) | |
callMediaType | Number | 通话的媒体类型,视频通话、语音通话 params.callMediaType = 0:语音通话 params.callMediaType = 1:视频通话 |
callRole | Number | 角色,枚举类型:主叫、被叫 params.callRole = 0:未知类型。 params.callRole = 1:主叫(邀请方)。 params.callRole = 2:被叫(被邀请方)。 |
totalTime | Number | 此次通话的时长,单位:秒 |
onUserReject
通话被拒绝的回调,在1v1 通话中,只有主叫方会收到拒绝回调,在群组通话中,所有被邀请者都可以收到该回调。
function onListener(type: TUICallEvent, params: any) {if (type === TUICallEvent.onUserReject) {console.log("strRoomId:" + params.userId);}}TUICallKit.on(onListener);
参数 | 类型 | 含义 |
userId | String | 拒绝用户的 ID |
onUserNoResponse
对方无回应的回调。
function onListener(type: TUICallEvent, params: any) {if (type === TUICallEvent.onUserNoResponse) {console.log("strRoomId:" + params.userId);}}TUICallKit.on(onListener);
参数 | 类型 | 含义 |
userId | String | 无响应用户的 ID |
onUserLineBusy
通话忙线回调。
function onListener(type: TUICallEvent, params: any) {if (type === TUICallEvent.onUserLineBusy) {console.log("strRoomId:" + params.userId);}}TUICallKit.on(onListener);
参数 | 类型 | 含义 |
userId | String | 拒绝用户的 ID |
onUserJoin
有用户进入此次通话的回调。
function onListener(type: TUICallEvent, params: any) {if (type === TUICallEvent.onUserJoin) {console.log("strRoomId:" + params.userId);}}TUICallKit.on(onListener);
参数 | 类型 | 含义 |
userId | String | 加入当前通话的用户 ID |
onUserLeave
有用户离开此次通话的回调。
TUICallKit.on(TUICallEvent.onUserLeave, (res: any) => {console.log('onUserLeave userId=' + res.userId);});
参数 | 类型 | 含义 |
userId | String | 离开当前通话的用户 ID |
onCallMediaTypeChanged
表示通话的媒体类型发生变化。
function onListener(type: TUICallEvent, params: any) {if (type === TUICallEvent.onCallMediaTypeChanged) {console.log("oldCallMediaType:" + params.oldCallMediaType+ "newCallMediaType:" + params.newCallMediaType);}}TUICallKit.on(onListener);
onKickedOffline
当前用户被踢下线:此时可以 UI 提示用户,并再次重新调用初始化。
function onListener(type: TUICallEvent, params: any) {if (type === TUICallEvent.onKickedOffline) {console.log("onKickedOffline");}}TUICallKit.on(onListener);
onUserSigExpired
在线时票据过期:此时您需要生成新的 userSig,并再次重新调用初始化。
function onListener(type: TUICallEvent, params: any) {if (type === TUICallEvent.onUserSigExpired) {console.log("onKickedOffline");}}TUICallKit.on(onListener);
onUserVideoAvailable
用户是否开启视频上行回调。
TUICallKit.on(TUICallEvent.onUserVideoAvailable, (res: any) => {console.log('onUserVideoAvailable userId=' + res.userId + 'isVideoAvailable=' + res.isVideoAvailable);});
参数 | 类型 | 含义 |
userId | String | 通话用户 ID |
isVideoAvailable | boolean | 用户视频是否可用 |
onUserAudioAvailable
用户是否开启音频上行回调。
TUICallKit.on(TUICallEvent.onUserAudioAvailable, (res: any) => {console.log('onUserAudioAvailable userId=' + res.userId + 'isAudioAvailable=' + res.isAudioAvailable);});
参数 | 类型 | 含义 |
userId | String | 用户 ID |
isAudioAvailable | boolean | 用户音频是否可用 |
onUserVoiceVolumeChanged
用户通话音量的回调。
TUICallKit.on(TUICallEvent.onUserVoiceVolumeChanged, (volumeMap: any) => {for (const [key, value] of volumeMap) {console.log(`onUserVoiceVolumeChanged userId: ${key}, volume: ${value}`);}});
参数 | 类型 | 含义 |
volumeMap | any | 音量表,根据每个 userId 可以获取对应用户的音量大小,音量最小值为0,音量最大值为100 |
onUserNetworkQualityChanged
用户网络质量的回调。
TUICallKit.on(TUICallEvent.onUserNetworkQualityChanged, (networkQuality: any) => {for (const [key, value] of networkQuality) {console.log(`onUserNetworkQualityChanged userId: ${key}, network quality: ${value}`);}});
参数 | 类型 | 含义 |
networkQuality | any | 网络状态,根据每个 userId 可以获取对应用户当前的网络质量。 value = Unknown value = Excellent value = Good value = Poor value = Bad value = Vbad value = Down |