tencent cloud

实时音视频

动态与公告
产品动态
产品近期公告
关于 TRTC Live 正式上线的公告
关于TRTC Conference 正式版上线的公告
Conference 商业化版本即将推出
关于多人音视频 Conference 开启内测公告
关于音视频通话 Call 正式版上线的公告
关于腾讯云音视频终端 SDK 播放升级及新增授权校验的公告
关于 TRTC 应用订阅套餐服务上线的相关说明
产品简介
产品概述
基本概念
产品功能
产品优势
应用场景
性能数据
购买指南
计费概述
免费时长说明
月订阅
现收现付
TRTC 逾期与暂停政策
常见问题解答
退款说明
新手指引
Demo 体验
视频通话 SDK
组件介绍
开通服务
跑通 Demo
快速接入
离线唤醒
会话聊天
云端录制
AI 降噪
界面定制
Chat 集成通话能力
更多特性
无 UI 集成
服务端 API
客户端 API
解决方案
错误码表
发布日志
常见问题
视频会议 SDK
组件介绍(TUIRoomKit)
开通服务(TUIRoomKit)
跑通 Demo(TUIRoomKit)
快速接入(TUIRoomKit)
屏幕共享(TUIRoomKit)
预定会议(TUIRoomKit)
会中呼叫(TUIRoomKit)
界面定制(TUIRoomKit)
虚拟背景(TUIRoomKit)
会议控制(TUIRoomKit)
云端录制(TUIRoomKit)
AI 降噪(TUIRoomKit)
会中聊天(TUIRoomKit)
机器人推流(TUIRoomKit)
更多特性(TUIRoomKit)
客户端 API(TUIRoomKit)
服务端 API(TUIRoomKit)
常见问题(TUIRoomKit)
错误码 (TUIRoomKit)
SDK更新日志(TUIRoomKit)
直播与语聊 SDK
Live 视频直播计费说明
组件介绍
开通服务(TUILiveKit)
跑通 Demo
无 UI 集成
UI 自定义
直播监播
视频直播
语聊房
高级功能
客户端 API
服务端 API
错误码
发布日志
常见问题
RTC Engine
开通服务
SDK 下载
API-Example
接入指引
API-参考手册
高级功能
AI 集成
概述
MCP 配置
Skills 配置
集成指南
常见问题
RTC RESTFUL API
History
Introduction
API Category
Room Management APIs
Stream mixing and relay APIs
On-cloud recording APIs
Data Monitoring APIs
Pull stream Relay Related interface
Web Record APIs
AI Service APIs
Cloud Slicing APIs
Cloud Moderation APIs
Making API Requests
Call Quality Monitoring APIs
Usage Statistics APIs
Data Types
Appendix
Error Codes
控制台指南
应用管理
套餐包管理
用量统计
监控仪表盘
开发辅助
解决方案
实时合唱
常见问题
迁移指南
计费相关
功能相关
UserSig 相关
应对防火墙限制相关
缩减安装包体积相关
Andriod 与 iOS 相关
Web 端相关
Flutter 相关
Electron 相关
TRTCCalling Web 相关
音视频质量相关
其他问题
旧版文档
RTC RoomEngine SDK(旧)
集成 TUIRoom (Web)
集成 TUIRoom (Android)
集成 TUIRoom (iOS)
集成 TUIRoom (Flutter)
集成 TUIRoom (Electron)
TUIRoom API 查询
实现云端录制与回放(旧)
监控仪表盘计费(旧)
协议与策略
安全合规认证
安全白皮书
信息安全说明
服务等级协议
苹果隐私策略:PrivacyInfo.xcprivacy
TRTC 政策
隐私协议
数据处理和安全协议
词汇表

TUICallEvent

PDF
聚焦模式
字号
最后更新时间: 2026-03-16 17:28:35

TUICallEvent API 简介

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

事件列表

EVENT
描述
通话过程中错误事件
用户重复登录,被踢下线
xxxx 用户接通的事件,v4.x.x 已废弃
xxxx 用户加入通话的事件
xxxx 用户离开通话的事件
xxxx 用户拒绝通话的事件
xxxx 用户不响应的事件
xxxx 用户忙线的事件
xxxx 用户是否有视频流的事件
xxxx 用户是否有音频流的事件
所有用户音量大小的反馈事件
通话请求的事件
通话未建立的事件
通话接通时抛出的事件
通话结束的事件
设备列表更新的事件
所有用户网络质量的事件

ERROR

通话过程中错误事件,可以通过监听该事件,捕获通话过程中的内部错误。
let onError = function(error) {
console.log(error.code, error.msg);
};
tuiCallEngine.on(TUICallEvent.ERROR, onError);
参数如下表所示:
参数
类型
含义
code
Number
错误码
msg
String
错误信息

KICKED_OUT

当前用户被踢下线,此时可以 UI 提示用户,并重新调用登录。
let handleOnKickedOut = function(event) {
console.log(event);
};
tuiCallEngine.on(TUICallEvent.KICKED_OUT, handleOnKickedOut);

USER_ACCEPT

注意:
该事件 v4.x.x 已废弃。
如果有用户接通,其他用户都会抛出该事件,userID 就是接通的用户名。
1. 1v1 通话下:被叫接通,主叫会抛出该事件。
2. 群组通话下:A 呼叫 B/C,B 接通,A/C 都会抛出该事件,事件的 userID 都是 B。同理 C 接通,A、B 都会抛出该事件,事件的 userID 都是 C。
let handleUserAccept = function(event) {
console.log(event.userID);
};
tuiCallEngine.on(TUICallEvent.USER_ACCEPT, handleUserAccept);
参数如下表所示:
参数
类型
含义
userID
String
接通通话的用户 ID

USER_ENTER

如果有用户进入通话,其他用户都会抛出该事件,userID 就是进入通话的用户名。
let handleUserEnter = function(event) {
console.log(event.userID);
};
tuiCallEngine.on(TUICallEvent.USER_ENTER, handleUserEnter);
参数如下表所示:
参数
类型
含义
userID
String
进入通话的用户 ID

USER_LEAVE

有用户离开此次通话时,通话中的其他用户都会抛出该事件,userID 就是离开通话的用户名。
let handleUserLeave = function(event) {
console.log(event.userID);
};
tuiCallEngine.on(TUICallEvent.USER_LEAVE, handleUserLeave);
参数如下表所示:
参数
类型
含义
userID
String
离开当前通话的用户 ID

REJECT

通话被拒绝时抛出该事件
1. 在 1v1 通话中,只有主叫方会收到拒绝事件,userID 就是被叫用户名。
2. 在群组通话中,当有被邀请者拒绝通话时,群组通话的其他人都会抛出该事件,userID 就是拒绝通话的用户名。
let handleInviteeReject = function(event) {
console.log(event.userID);
};
tuiCallEngine.on(TUICallEvent.REJECT, handleInviteeReject);
参数如下表所示:
参数
类型
含义
userID
String
拒绝通话的用户 ID

NO_RESP

被呼叫者没有回应时,其他通话用户都会抛出该事件。
在 1v1 通话中,只有主叫方会抛出无人应答的事件。例如 A 邀请 B,B 不应答,A 抛出该事件。
在群组通话中,当有被邀请者不回应时,群组通话的其他人都会抛出该事件。例如 A 邀请 B、C 进入通话,B 不应答,A、C 均会抛出该事件。
let handleNoResponse = function(event) {
console.log(event.sponsor, event.userIDList);
};
tuiCallEngine.on(TUICallEvent.NO_RESP, handleNoResponse);
参数如下表所示:
参数
类型
含义
sponsor
String
发起方的用户 ID
userIDList
Array<String>
无响应的用户 ID 列表

LINE_BUSY

通话忙线事件。例如:B 正在通话时,此时 A 呼叫 B,A 会抛出事件。
let handleLineBusy = function(event) {
console.log(event);
};
tuiCallEngine.on(TUICallEvent.LINE_BUSY, handleLineBusy);
参数如下表所示:
参数
类型
含义
userID
String
忙线用户 ID

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 用户关闭麦克风

USER_VOICE_VOLUME

音视频通话中用户音量变化时,通话的其他用户都会抛出该事件。例如:A 和 B 在进行音视频通话,A 音量变化,B 会抛出该事件。
let handleUserVoiceVolumeChange = function(event) {
console.log(event.volumeMap);
};
tuiCallEngine.on(TUICallEvent.USER_VOICE_VOLUME, handleUserVoiceVolumeChange);
参数如下表所示:
参数
类型
含义
volumeMap
Array<Object>
音量表,根据每个 userid 可以获取对应的音量大小,音量范围:[0, 100]

ON_CALL_RECEIVED

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

ON_CALL_NOT_CONNECTED

如果通话未建立,都会抛出该事件
let handleOnCallCanceled = function(event) {
console.log(event.userID);
};
tuiCallEngine.on(TUICallEvent.ON_CALL_NOT_CONNECTED, handleOnCallCanceled);
参数如下表所示:
参数
类型
含义
userID
String
通话取消的用户 ID
callId
String
本次通话的唯一 ID
roomID
Number
此次通话的音视频房间 ID
callMediaType
Number
通话的媒体类型,视频通话、语音通话
callRole
String
角色,枚举类型:主叫、被叫
reason
Number
通话未建立原因:
0 - 未知
1 - 挂断
2 - 拒绝
3 - 无响应
4 - 离线
5 - 忙线
6 - 取消通话
7 - 其它设备接听
8 - 其它设备拒绝
9 - 后台结束

ON_CALL_BEGIN

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

ON_CALL_END

通话结束时,主叫和被叫都会抛出该事件。您可以通过监听这个事件来显示通话时长、通话类型等信息,或者来停止云端的录制流程。
let handleCallingEnd = function(event) {
console.log(event.userID, event.);
};
tuiCallEngine.on(TUICallEvent.ON_CALL_END, handleCallingEnd);
参数如下表所示:
参数
类型
含义
roomID
Number
此次通话的音视频房间 ID
callMediaType
Number
通话的媒体类型,视频通话、语音通话
callRole
String
角色,枚举类型:主叫('inviter')、被叫('invitee')、未知('')
totalTime
Number
此次通话的时长,单位: 秒
userID
String
通话结束的 userID。
callId
String
本次通话的唯一 ID

DEVICED_UPDATED

设备列表更新时抛出该事件。
let handleDeviceUpdated = function({ microphoneList, cameraList, currentMicrophoneID, currentCameraID }) {
console.log(microphoneList, cameraList, currentMicrophoneID, currentCameraID);
};
tuiCallEngine.on(TUICallEvent.DEVICED_UPDATED, handleDeviceUpdated);

ON_USER_NETWORK_QUALITY_CHANGED

所有用户网络质量的事件
let handleOnUserNetworkQualityChange = function(event) {
console.log(event.networkQualityList);
};
tuiCallEngine.on(TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED, handleOnUserNetworkQualityChange);
参数如下表所示:
参数
类型
含义
networkQualityList
Array<Object>
网络状态,根据 userID 可以获取对应用户当前的网络质量(仅表示本地的上下行)。例如: networkQualityList: [{ userId: quality }]网络质量说明:
quality = 0,网络状况未知
quality = 1,网络状况极佳
quality = 2,网络状况较好
quality = 3,网络状况一般
quality = 4,网络状况差
quality = 5,网络状况极差
quality = 6,网络连接已断开

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈