腾讯云即时通信IM事件_AI解决方案_同尘科技

即时通信 IM 2年前 (2023-04-19) 浏览 77

事件简介

可以监听 TUICallKit 对应的事件,进行提示或其它交互。

回调事件概览

API 描述
onError 通话过程中错误回调
onCallReceived 通话请求的回调
onCallCancelled 通话取消的回调
onCallBegin 通话接通的回调
onCallEnd 通话结束的回调
onCallMediaTypeChanged 通话媒体类型发生改变的回调
onUserReject xxxx 用户拒绝通话的回调
onUserNoResponse xxxx 用户不响应的回调
onUserLineBusy xxxx 用户忙线的回调
onUserJoin xxxx 用户加入通话的回调
onUserLeave xxxx 用户离开通话的回调
onUserVideoAvailable xxx 用户是否有视频流的回调
onUserAudioAvailable xxx 用户是否有音频流的回调
onUserVoiceVolumeChanged 所有用户音量大小的反馈回调
onUserNetworkQualityChanged 所有用户网络质量的反馈回调

回调事件详情

通过 globalEvent 监听原生插件抛出的事件。

const TUICallingEvent = uni.requireNativePlugin('globalEvent');

onError

错误回调。说明SDK 不可恢复的错误,一定要监听,并分情况给用户适当的界面提示。

TUICallingEvent.addEventListener('onError', (res) => {  console.log('onError', JSON.stringify(res));});

参数如下表所示:

参数 类型 含义
res Object 错误回调参数
res.code Number 错误码
res.msg String 错误信息

onCallReceived

收到一个新的来电请求回调,被叫会收到,您可以通过监听这个事件,来决定是否显示通话接听界面。

TUICallingEvent.addEventListener('onCallReceived', (res) => {  console.log('onCallReceived', JSON.stringify(res));});

参数如下表所示:

参数 类型 含义
res Object 回调参数
res.callerId String 主叫 ID(邀请方)
res.calleeIdList Array 被叫 ID 列表(被邀请方)
res.isGroupCall Boolean 是否群组通话
res.callMediaType Number 通话的媒体类型,例如:语音通话(callMediaType = 1)、视频通话(callMediaType = 2)

onCallCancelled

表示此次通话主叫取消、被叫超时、拒接等等,涉及多个场景,您可以通过监听这个事件来实现类似未接来电、重置UI状态等显示逻辑。主叫取消:主叫收到该回调(userId 为自己);被叫收到该回调(userId 为主叫的 ID)。被叫超时:主叫会同时收到 onUserNoResponse 和 onCallCancelled 回调(userId 是自己的 ID);被叫收到 onCallCancelled 回调(userId 是自己的 ID)。被叫拒接:主叫会同时收到 onUserReject 和 onCallCancelled 回调(userId 是自己的 ID);被叫收到 onCallCancelled 回调(userId 是自己的 ID)。被叫忙线:主叫会同时收到 onUserLineBusy 和 onCallCancelled 回调(userId 是自己的 ID);被叫收到 onCallCancelled 回调(userId 是自己的 ID)。异常中断:被叫接收通话失败,收到该回调(userId 是自己的 ID)。

TUICallingEvent.addEventListener('onCallCancelled', (res) => {  console.log('onCallCancelled', res);});

参数如下表所示:

参数 类型 含义
res Object 回调参数
res.userId String 用户的 ID

onCallBegin

表示通话接通,主叫和被叫都可以收到,您可以通过监听这个事件来开启云端录制、内容审核等流程。

TUICallingEvent.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

表示通话结束,主叫和被叫都可以收到,您可以通过监听这个事件来显示通话时长、通话类型等信息,或者来停止云端的录制流程。

TUICallingEvent.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 此次通话的时长,单位 ms

注意 客户端的事件一般都会随着杀进程等异常事件丢失掉,如果您需要通过监听通话时长来完成计费等逻辑,建议可以使用 REST API 来完成这类流程。

onCallMediaTypeChanged

表示通话的媒体类型发生变化。

TUICallingEvent.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 通话中,只有主叫方会收到拒绝回调,在群组通话中,所有被邀请者都可以收到该回调。

TUICallingEvent.addEventListener('onUserReject', (res) => {  console.log('onUserReject', JSON.stringify(res));});

参数如下表所示:

参数 类型 含义
res Object 回调参数
res.userId String 拒绝用户的 ID

onUserNoResponse

对方无回应的回调。

TUICallingEvent.addEventListener('onUserNoResponse', (res) => {  console.log('onUserNoResponse', JSON.stringify(res));});

参数如下表所示:

参数 类型 含义
res Object 回调参数
res.userId String 无响应用户的 ID

onUserLineBusy

通话忙线回调。

TUICallingEvent.addEventListener('onUserLineBusy', (res) => {  console.log('onUserLineBusy', JSON.stringify(res));});

参数如下表所示:

参数 类型 含义
res Object 回调参数
res.userId String 忙线用户的 ID

onUserJoin

有用户进入此次通话的回调。

TUICallingEvent.addEventListener('onUserJoin', (res) => {  console.log('onUserJoin', JSON.stringify(res));});

参数如下表所示:

参数 类型 含义
res Object 回调参数
res.userId String 加入当前通话的用户 ID

onUserLeave

有用户离开此次通话的回调。

TUICallingEvent.addEventListener('onUserLeave', (res) => {  console.log('onUserLeave', JSON.stringify(res));});

参数如下表所示:

参数 类型 含义
res Object 回调参数
res.userId String 离开当前通话的用户 ID

onUserVideoAvailable

用户是否开启视频上行回调。

TUICallingEvent.addEventListener('onUserVideoAvailable', (res) => {  console.log('onUserVideoAvailable', JSON.stringify(res));});

参数如下表所示:

参数 类型 含义
res Object 回调参数
res.userId String 通话用户 ID
res.isVideoAvailable Boolean 用户视频是否可用

onUserAudioAvailable

用户是否开启音频上行回调。

TUICallingEvent.addEventListener('onUserAudioAvailable', (res) => {  console.log('onUserAudioAvailable', JSON.stringify(res));});

参数如下表所示:

参数 类型 含义
res Object 回调参数
res.userId String 用户 ID
res.isAudioAvailable Boolean 用户音频是否可用

onUserVoiceVolumeChanged

用户通话音量的回调。

TUICallingEvent.addEventListener('onUserVoiceVolumeChanged', (res) => {  console.log('onUserVoiceVolumeChanged', JSON.stringify(res));});

参数如下表所示:

参数 类型 含义
res Object 回调参数
res.volumeMap Map 音量表,根据每个 userId 可以获取对应用户的音量大小,音量最小值为0,音量最大值为100

onUserNetworkQualityChanged

用户网络质量的回调。

TUICallingEvent.addEventListener('onUserNetworkQualityChanged', (res) => {  console.log('onUserNetworkQualityChanged', JSON.stringify(res));});

参数如下表所示:

参数 类型 含义
res Object 回调参数
res.networkQualityList List 网络状态,根据每个 userId 可以获取对应用户当前的网络质量



对即时通讯IM解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?