事件简介
可以监听 TUICallKit 对应的事件,进行提示或其它交互。
回调事件概览
API | 描述 |
通话过程中错误回调 | |
通话请求的回调 | |
通话取消的回调 | |
通话接通的回调 | |
通话结束的回调 | |
通话媒体类型发生改变的回调 | |
xxxx 用户拒绝通话的回调 | |
xxxx 用户不响应的回调 | |
xxxx 用户忙线的回调 | |
xxxx 用户加入通话的回调 | |
xxxx 用户离开通话的回调 | |
xxx 用户是否有视频流的回调 | |
xxx 用户是否有音频流的回调 | |
所有用户音量大小的反馈回调 | |
所有用户网络质量的反馈回调 | |
当前用户被踢下线 | |
在线时票据过期 |
回调事件详情
通过 globalEvent 监听原生插件抛出的事件。
const TUICallEngine = uni.requireNativePlugin('TencentCloud-TUICallKit-TUICallEngine');
onError
错误回调。
说明
SDK 不可恢复的错误,一定要监听,并分情况给用户适当的界面提示。
TUICallEngine.addEventListener('onError', (res) => {console.log('onError', JSON.stringify(res));});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 错误回调参数 |
res.code | Number | 错误码 |
res.msg | String | 错误信息 |
onCallReceived
收到一个新的来电请求回调,被叫会收到,您可以通过监听这个事件,来决定是否显示通话接听界面。
TUICallEngine.addEventListener('onCallReceived', (res) => {console.log('onCallReceived', JSON.stringify(res));});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 回调参数 |
res.callerId | String | 主叫 ID(邀请方) |
res.calleeIdList | Array<String> | 被叫 ID 列表(被邀请方) |
res.groupId | String | 群通话 ID。在群组通话时返回,1v1 返回 groupId 为空字符串 |
res.callMediaType | Number | 通话的媒体类型,比如:语音通话(callMediaType = 1)、视频通话(callMediaType = 2) |
res.userData | String | 用户增加的扩展字段 |
onCallCancelled
表示此次通话主叫取消、被叫超时、拒接等,涉及多个场景,您可以通过监听这个事件来实现类似未接来电、重置 UI 状态等显示逻辑。
主叫取消:主叫收到该回调(userId 为自己);被叫收到该回调(userId 为主叫的 ID)。
被叫超时:主叫会同时收到 onUserNoResponse 和 onCallCancelled 回调(userId 是自己的 ID);被叫收到 onCallCancelled 回调(userId 是自己的 ID)。
被叫拒接:主叫会同时收到 onUserReject 和 onCallCancelled 回调(userId 是自己的 ID);被叫收到 onCallCancelled 回调(userId 是自己的 ID)。
被叫忙线:主叫会同时收到 onUserLineBusy 和 onCallCancelled 回调(userId 是自己的 ID)。
异常中断:被叫接收通话失败,收到该回调(userId 是自己的 ID)。
TUICallEngine.addEventListener('onCallCancelled', (res) => {console.log('onCallCancelled', res);});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 回调参数 |
res.userId | String | 用户的 ID |
onCallBegin
表示通话接通,主叫和被叫都可以收到,您可以通过监听这个事件来开启云端录制、内容审核等流程。
TUICallEngine.addEventListener('onCallBegin', (res) => {console.log('onCallBegin', JSON.stringify(res));});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 回调参数 |
res.roomID | Number | 此次通话的音视频房间 ID,目前仅支持数字房间号,后续版本会支持字符串房间号 |
res.callMediaType | Number | 通话的媒体类型,比如:语音通话(callMediaType = 1)、视频通话(callMediaType = 2) |
res.callRole | Number | 角色,枚举类型:主叫(callRole = 1)、被叫(callRole = 2) |
onCallEnd
表示通话结束,主叫和被叫都可以收到,您可以通过监听这个事件来显示通话时长、通话类型等信息,或者来停止云端的录制流程。
TUICallEngine.addEventListener('onCallEnd', (res) => {console.log('onCallEnd', JSON.stringify(res));});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 回调参数 |
res.roomID | Number | 此次通话的音视频房间 ID,目前仅支持数字房间号,后续版本会支持字符串房间号 |
res.callMediaType | Number | 通话的媒体类型,比如:语音通话(callMediaType = 1)、视频通话(callMediaType = 2) |
res.callRole | Number | 角色,枚举类型:主叫(callRole = 1)、被叫(callRole = 2) |
res.totalTime | Number | 此次通话的时长,单位:秒 |
注意
客户端的事件一般都会随着杀进程等异常事件丢失掉,如果您需要通过监听通话时长来完成计费等逻辑,建议可以使用 REST API 来完成这类流程。
onCallMediaTypeChanged
表示通话的媒体类型发生变化。
TUICallEngine.addEventListener('onCallMediaTypeChanged', (res) => {console.log('onCallMediaTypeChanged', JSON.stringify(res));});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 回调参数 |
res.oldCallMediaType | Number | 旧的通话类型,比如:语音通话(callMediaType = 1)、视频通话(callMediaType = 2) |
res.newCallMediaType | Number | 新的通话类型,比如:语音通话(callMediaType = 1)、视频通话(callMediaType = 2) |
onUserReject
通话被拒绝的回调,在1v1 通话中,只有主叫方会收到拒绝回调,在群组通话中,所有被邀请者都可以收到该回调。
TUICallEngine.addEventListener('onUserReject', (res) => {console.log('onUserReject', JSON.stringify(res));});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 回调参数 |
res.userId | String | 拒绝用户的 ID |
onUserNoResponse
对方无回应的回调。
TUICallEngine.addEventListener('onUserNoResponse', (res) => {console.log('onUserNoResponse', JSON.stringify(res));});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 回调参数 |
res.userId | String | 无响应用户的 ID |
onUserLineBusy
通话忙线回调。
TUICallEngine.addEventListener('onUserLineBusy', (res) => {console.log('onUserLineBusy', JSON.stringify(res));});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 回调参数 |
res.userId | String | 忙线用户的 ID |
onUserJoin
有用户进入此次通话的回调。
TUICallEngine.addEventListener('onUserJoin', (res) => {console.log('onUserJoin', JSON.stringify(res));});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 回调参数 |
res.userId | String | 加入当前通话的用户 ID |
onUserLeave
有用户离开此次通话的回调。
TUICallEngine.addEventListener('onUserLeave', (res) => {console.log('onUserLeave', JSON.stringify(res));});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 回调参数 |
res.userId | String | 离开当前通话的用户 ID |
onUserVideoAvailable
用户是否开启视频上行回调。
TUICallEngine.addEventListener('onUserVideoAvailable', (res) => {console.log('onUserVideoAvailable', JSON.stringify(res));});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 回调参数 |
res.userId | String | 通话用户 ID |
res.isVideoAvailable | boolean | 用户视频是否可用 |
onUserAudioAvailable
用户是否开启音频上行回调。
TUICallEngine.addEventListener('onUserAudioAvailable', (res) => {console.log('onUserAudioAvailable', JSON.stringify(res));});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 回调参数 |
res.userId | String | 用户 ID |
res.isAudioAvailable | boolean | 用户音频是否可用 |
onUserVoiceVolumeChanged
用户通话音量的回调。
TUICallEngine.addEventListener('onUserVoiceVolumeChanged', (res) => {console.log('onUserVoiceVolumeChanged', JSON.stringify(res));});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 回调参数 |
res.volumeMap | Map<String, Integer> | 音量表,根据每个 userId 可以获取对应用户的音量大小,音量最小值为0,音量最大值为100 |
onUserNetworkQualityChanged
用户网络质量的回调。
TUICallEngine.addEventListener('onUserNetworkQualityChanged', (res) => {console.log('onUserNetworkQualityChanged', JSON.stringify(res));});
参数如下表所示:
参数 | 类型 | 含义 |
res | Object | 回调参数 |
res.networkQualityList | List | 网络状态,根据每个 userId 可以获取对应用户当前的网络质量 |
onKickedOffline
当前用户被踢下线:此时可以 UI 提示用户,并再次重新调用初始化。
TUICallEngine.addEventListener('onKickedOffline', (res) => {console.log('onKickedOffline', JSON.stringify(res));});
onUserSigExpired
在线时票据过期:此时您需要生成新的 userSig,并再次重新调用初始化。
TUICallEngine.addEventListener('onUserSigExpired', (res) => {console.log('onUserSigExpired', JSON.stringify(res));});