Copyright (c) 2026 Tencent. All rights reserved.
Module: TRTCCloudDef @ TXLiteAVSDK
Function: TRTC 关键类型定义(枚举、参数类与数据类)
Version: 13.5
TRTC 关键类型定义,Flutter SDK:
tencent_rtc_sdk。本文档涵盖各接口用到的枚举、参数类与统计数据类,导入 package:tencent_rtc_sdk/trtc_cloud_def.dart 后即可使用。类型列表
房间与角色
类型 | 描述 |
应用场景。 | |
用户角色。 | |
进房参数。 | |
切换房间参数。 |
视频编码与渲染
类型 | 描述 |
视频分辨率。 | |
视频宽高比模式。 | |
视频流类型。 | |
视频画面填充模式。 | |
视频画面旋转方向。 | |
视频镜像类型。 | |
画质偏好。 | |
重力感应适配模式(仅移动端)。 | |
视频编码参数。 | |
网络带宽限制参数。 | |
视频画面渲染参数。 |
音频
类型 | 描述 |
声音音质。 | |
音频录制内容类型。 | |
音频回调数据操作模式。 | |
音频帧内容格式。 | |
音量评估相关参数。 | |
自定义音频回调的格式参数。 | |
音量大小。 |
美颜与水印
类型 | 描述 |
美颜(磨皮)算法。 | |
水印图片的源类型。 |
屏幕分享
类型 | 描述 |
屏幕分享目标类型(仅桌面端)。 | |
屏幕分享目标信息(仅桌面端)。 | |
屏幕窗口列表。 | |
屏幕分享的高级控制参数。 | |
窗口缩略图与图标的存储结构。 |
CDN 发布与混流
类型 | 描述 |
媒体流发布模式。 | |
参与发布的用户信息。 | |
CDN 转推的目标地址。 | |
媒体流发布的目标配置。 | |
转码流中每一路视频画面的布局。 | |
转码流中水印的布局。 | |
媒体流编码输出参数。 | |
云端混流配置参数。 |
本地录制与截图
类型 | 描述 |
本地视频截图的数据源。 | |
本地媒体录制类型。 | |
本地媒体录制参数。 |
质量统计与网络测速
类型 | 描述 |
网络质量。 | |
音视频播放状态。 | |
播放状态变化的原因。 | |
网络测速场景。 | |
网络质量信息。 | |
本地音视频统计指标。 | |
远端音视频统计指标。 | |
网络和性能的汇总统计指标。 | |
网络测速参数。 | |
网络测速结果。 |
自定义采集与渲染
类型 | 描述 |
视频像素格式。 | |
视频数据传递方式。 | |
视频纹理数据。 | |
视频帧信息。 | |
音频帧数据。 |
日志与基础结构
类型 | 描述 |
日志级别。 | |
矩形区域坐标。 | |
尺寸(宽高)。 |
类型详情
以下按类型列表顺序逐一说明各枚举的取值与各数据类的字段。
TRTCAppScene
应用场景。
TRTC 针对常见的音视频应用场景进行了定向优化,以满足不同垂直行业的差异化要求,主要场景可以分为如下两类:
直播场景(LIVE):包含
live(音频 + 视频)和 voiceChatRoom(纯音频)。该场景下的用户分为“主播”和“观众”两种角色,单个房间最多支持 10 万人同时在线,适合向大量观众进行直播。实时通话场景(RTC):包含
videoCall(音频 + 视频)和 audioCall(纯音频)。该场景下的用户没有角色区分,但单个房间最多支持 300 人同时在线,适合小范围实时通信。枚举值 | 数值 | 描述 |
videoCall | 0 | 视频通话场景,支持 720p 和 1080p 高清画质。单个房间最多支持 300 人同时在线,其中最多 50 人可同时发言。 适用场景:一对一视频通话、300 人视频会议、在线问诊、视频聊天、视频面试等。 |
live | 1 | 互动视频直播场景,支持平滑上下麦无需等待切换,主播延时低至 300 ms 以内;支持十万人级别观众同时播放,播放延时低至 1000 ms。 适用场景:低延时视频直播、10 万人互动课堂、视频直播 PK、视频相亲房、远程培训、大型会议等。 注意: |
audioCall | 2 | 音频通话场景,支持 48 kHz 双声道音频通话。单个房间最多支持 300 人同时在线,其中最多 50 人可同时发言。 适用场景:一对一音频通话、300 人音频会议、语音聊天、语音狼人杀等。 |
voiceChatRoom | 3 | 互动音频直播场景,支持平滑上下麦无需等待切换,主播延时低至 300 ms 以内;支持十万人级别观众同时播放,播放延时低至 1000 ms。 适用场景:低延时音频直播、语聊房、K 歌房、FM 电台等。 注意: |
TRTCRoleType
用户角色。
主播:可以发布自己的音视频流,人数有上限,同一个房间中最多允许 50 人同时发布。
观众:只能收听或观看房间中主播的音视频流;如需发布自己的流,需要先通过 switchRole 切换为“主播”角色。单个房间最多支持 10 万名观众同时在线。
枚举值 | 数值 | 描述 |
anchor | 20 | 主播,可以发布自己的音视频流,同一个房间中最多允许 50 人同时发布。 |
audience | 21 |
TRTCParams
进房参数。
作为 TRTC SDK 的进房参数,需要正确设置这些参数,用户才能顺利进入
roomId 或 strRoomId 指定的音视频房间。由于历史原因,TRTC 支持两种房间号类型:
roomId 和 strRoomId。说明:
请不要混用
roomId 和 strRoomId,因为两者不互通。例如数字 123 和字符串 123 在 TRTC 中是两个完全不同的房间。字段 | 类型 | 默认值 | 描述 |
sdkAppId | int | 0 | 应用 ID(必填),腾讯云基于该字段计费。 |
userId | String | '' | 用户 ID(必填),是本地用户的 UTF-8 编码 ID,相当于用户名。 例如账号系统中某用户的 ID 是 mike,则该字段可以设为 mike。 |
userSig | String | '' | 用户签名(必填),是当前 userId 对应的鉴权签名,相当于登录腾讯云服务的密码。 |
roomId | int | 0 | 数字房间号,同一个房间中的用户可以彼此看到对方并进行音视频通话,取值范围:1 - 4294967294。 注意: roomId 和 strRoomId 互斥,若使用 strRoomId,则 roomId 需填 0;若两者都填,roomId 生效。 |
strRoomId | String | '' | 字符串房间号,同一个房间中的用户可以彼此看到对方并进行音视频通话,长度限制为 64 字节。 支持的 89 个字符为:字母(a-z、A-Z)、数字(0-9)、空格、 !、#、$、%、&、(、)、+、-、:、;、<、=、.、>、?、@、[、]、^、_、{、}、|、~、,。注意: roomId 和 strRoomId 必须填写一个。使用同一个 sdkAppId 互通时,请务必使用同一种房间号类型。 |
role | TRTCRoleType.anchor | 注意: | |
streamId | String | '' | 绑定的腾讯云直播 CDN 流 ID(选填)。设置该字段后,可以通过标准直播方案(FLV 或 HLS)在腾讯云直播 CDN 上播放该用户的音视频流。 该参数最长 64 字节,可以留空。推荐使用 sdkappid_roomid_userid_main 作为 streamId,这样更易于识别,且不会在您的多个应用中发生冲突。注意: 如需使用腾讯云直播 CDN,需要先在控制台的“功能配置”页面开启旁路直播功能。 |
userDefineRecordId | String | '' | 云端录制开关(选填),用于指定是否将该用户的音视频流在云端录制成指定格式的文件。 最长 64 字节,仅支持字母(a-z、A-Z)、数字(0-9)、下划线和连词符。 |
privateMapKey | String | '' | 房间签名(选填)。如果希望只有指定 userId 的用户才能进入房间,需要使用该字段限制权限。 |
businessInfo | String | '' | 业务数据(选填),仅在一些不常见的特殊需求中使用。 推荐不要使用该字段。 |
TRTCSwitchRoomConfig
切换房间参数。
字段 | 类型 | 默认值 | 描述 |
userSig | String | 必填 | 用户签名(必填),是当前 userId 对应的鉴权签名,相当于登录腾讯云服务的密码。 |
roomId | int | 0 | 数字房间号,同一个房间中的用户可以彼此看到对方并进行音视频通话,取值范围:1 - 4294967294。 注意: roomId 和 strRoomId 互斥,若使用 strRoomId,则 roomId 需填 0;若两者都填,roomId 生效。 |
strRoomId | String | '' | 字符串房间号,同一个房间中的用户可以彼此看到对方并进行音视频通话,长度限制为 64 字节。 注意: roomId 和 strRoomId 必须填写一个。使用同一个 sdkAppId 互通时,请务必使用同一种房间号类型。 |
privateMapKey | String | '' | 房间签名(选填)。如果希望只有指定 userId 的用户才能进入房间,需要使用该字段限制权限。 |
TRTCVideoResolution
视频分辨率。
枚举值 | 数值 | 描述 |
res_120_120 | 1 | 宽高比 1:1;分辨率 120x120;推荐码率(通话)80 Kbps;推荐码率(直播)120 Kbps。 |
res_160_160 | 3 | 宽高比 1:1;分辨率 160x160;推荐码率(通话)100 Kbps;推荐码率(直播)150 Kbps。 |
res_270_270 | 5 | 宽高比 1:1;分辨率 270x270;推荐码率(通话)200 Kbps;推荐码率(直播)300 Kbps。 |
res_480_480 | 7 | 宽高比 1:1;分辨率 480x480;推荐码率(通话)350 Kbps;推荐码率(直播)500 Kbps。 |
res_160_120 | 50 | 宽高比 4:3;分辨率 160x120;推荐码率(通话)100 Kbps;推荐码率(直播)150 Kbps。 |
res_240_180 | 52 | 宽高比 4:3;分辨率 240x180;推荐码率(通话)150 Kbps;推荐码率(直播)250 Kbps。 |
res_280_210 | 54 | 宽高比 4:3;分辨率 280x210;推荐码率(通话)200 Kbps;推荐码率(直播)300 Kbps。 |
res_320_240 | 56 | 宽高比 4:3;分辨率 320x240;推荐码率(通话)250 Kbps;推荐码率(直播)375 Kbps。 |
res_400_300 | 58 | 宽高比 4:3;分辨率 400x300;推荐码率(通话)300 Kbps;推荐码率(直播)450 Kbps。 |
res_480_360 | 60 | 宽高比 4:3;分辨率 480x360;推荐码率(通话)400 Kbps;推荐码率(直播)600 Kbps。 |
res_640_480 | 62 | 宽高比 4:3;分辨率 640x480;推荐码率(通话)600 Kbps;推荐码率(直播)900 Kbps。 |
res_960_720 | 64 | 宽高比 4:3;分辨率 960x720;推荐码率(通话)1000 Kbps;推荐码率(直播)1500 Kbps。 |
res_160_90 | 100 | 宽高比 16:9;分辨率 160x90;推荐码率(通话)150 Kbps;推荐码率(直播)250 Kbps。 |
res_256_144 | 102 | 宽高比 16:9;分辨率 256x144;推荐码率(通话)200 Kbps;推荐码率(直播)300 Kbps。 |
res_320_180 | 104 | 宽高比 16:9;分辨率 320x180;推荐码率(通话)250 Kbps;推荐码率(直播)400 Kbps。 |
res_480_270 | 106 | 宽高比 16:9;分辨率 480x270;推荐码率(通话)350 Kbps;推荐码率(直播)550 Kbps。 |
res_640_360 | 108 | 宽高比 16:9;分辨率 640x360;推荐码率(通话)500 Kbps;推荐码率(直播)900 Kbps。 |
res_960_540 | 110 | 宽高比 16:9;分辨率 960x540;推荐码率(通话)850 Kbps;推荐码率(直播)1300 Kbps。 |
res_1280_720 | 112 | 宽高比 16:9;分辨率 1280x720;推荐码率(通话)1200 Kbps;推荐码率(直播)1800 Kbps。 |
res_1920_1080 | 114 | 宽高比 16:9;分辨率 1920x1080;推荐码率(通话)2000 Kbps;推荐码率(直播)3000 Kbps。 |
TRTCVideoResolutionMode
视频宽高比模式。
枚举值 | 数值 | 描述 |
landscape | 0 | 横屏分辨率。 |
portrait | 1 | 竖屏分辨率。 |
TRTCVideoStreamType
视频流类型。
枚举值 | 数值 | 描述 |
big | 0 | 高清大画面,一般用于传输摄像头的视频数据。 |
small | 1 | 低清小画面,内容与大画面相同,但分辨率和码率更低,因此清晰度也更低。 |
sub | 2 | 辅路画面,一般用于屏幕分享。 同一时间房间中只允许一个用户发布辅路视频画面,其他用户必须等待该用户关闭辅路后才能发布自己的辅路。 |
TRTCVideoFillMode
视频画面填充模式。
当视频显示区域的宽高比不等于视频画面的宽高比时,需要指定填充模式。
枚举值 | 数值 | 描述 |
fill | 0 | 填充模式。视频画面会被居中等比缩放以充满整个显示区域,超出显示区域的部分会被裁剪掉。该模式下画面可能显示不完整。 |
fit | 1 | 适应模式。视频画面会按长边等比缩放以适应显示区域,短边区域会被填充黑色。该模式下画面显示完整,但可能有黑边。 |
scaleFill | 2 | 拉伸填充模式。不考虑画面宽高比,直接拉伸或压缩画面以完全填满显示区域。该模式下画面的宽高比可能被改变,导致渲染出的画面变形。 |
TRTCVideoRotation
视频画面旋转方向。
枚举值 | 数值 | 描述 |
rotation0 | 0 | 不旋转。 |
rotation90 | 1 | 顺时针旋转 90 度。 |
rotation180 | 2 | 顺时针旋转 180 度。 |
rotation270 | 3 | 顺时针旋转 270 度。 |
TRTCVideoMirrorType
视频镜像类型。
枚举值 | 数值 | 描述 |
auto | 0 | 自动模式:镜像前置摄像头的画面,不镜像后置摄像头的画面(仅适用于移动端)。 |
enable | 1 | 前置摄像头和后置摄像头的画面都镜像。 |
disable | 2 | 前置摄像头和后置摄像头的画面都不镜像。 |
TRTCVideoQosPreference
画质偏好。
TRTC 在弱网络环境下有“保清晰”和“保流畅”两种控制模式,两种模式都会优先保障音频数据的传输。
枚举值 | 数值 | 描述 |
smooth | 1 | 保流畅。当前网络无法同时传输清晰且流畅的画面时,优先保证画面的流畅性,代价是画面会比较模糊。 |
clear | 2 | 保清晰(默认值)。当前网络无法同时传输清晰且流畅的画面时,优先保证画面的清晰度,代价是画面会比较卡顿。 |
TRTCGSensorMode
重力感应适配模式(仅移动端)。
枚举值 | 数值 | 描述 |
disable | 0 | 不适配重力感应方向。该模式是桌面端的默认值。 该模式下,当前用户发布的视频画面不受重力感应方向变化的影响。 |
uiAutoLayout | 1 | 适配重力感应方向。该模式是移动端的默认值。 该模式下,当前用户发布的视频画面会根据重力感应方向进行调整,而本地预览画面的方向保持不变。 当手机或平板倒置时,为了保证远端用户看到的画面方向正常,SDK 会自动将发布的视频画面旋转 180 度。 如果您的应用在 UI 层已经开启了重力感应适配,推荐使用 uiFixLayout 模式。 |
uiFixLayout | 2 | 适配重力感应方向。 该模式下,当前用户发布的视频画面会根据重力感应方向进行调整,本地预览画面也会相应旋转。 当手机或平板倒置时,为了保证远端用户看到的画面方向正常,SDK 会自动将发布的视频画面旋转 180 度。 |
TRTCVideoEncParam
视频编码参数。
该设置决定远端用户看到的画面质量,同时也决定云端录制出的视频文件的画面质量。
字段 | 类型 | 默认值 | 描述 |
videoResolution | TRTCVideoResolution.res_1280_720 | 视频通话推荐选择 360x640 及以下分辨率,并将 videoResolutionMode 设为 portrait;移动端直播推荐 540x960 + portrait;Windows 和 macOS 推荐 640x360 及以上分辨率 + landscape。 | |
videoResolutionMode | TRTCVideoResolutionMode.portrait | 若 videoResolution 选择 640x360 且该字段选择 portrait,则编码后的最终输出分辨率为 360x640。 | |
videoFps | int | 10 | 视频采集帧率。 推荐 15 fps 或 20 fps。低于 5 fps 会有明显卡顿;高于 20 fps 则是资源浪费(电影的帧率通常为 24 fps)。 注意: 很多 Android 手机的前置摄像头不支持高于 15 fps 的采集帧率。 |
videoBitrate | int | 1600 | 目标视频码率,SDK 会按照该码率进行编码,只有在网络不佳时才会主动降低码率。 |
minVideoBitrate | int | 0 | 最低视频码率,SDK 只有在网络不佳时才会降低码率到该值。 0 表示由 SDK 根据分辨率自动决定最低码率。若希望“保清晰”,可设为 videoBitrate 的 60%;若希望“保流畅”,可设为 200 Kbps;若与 videoBitrate 相同,则相当于关闭 SDK 的自适应调节能力。 |
enableAdjustRes | bool | false | 是否允许动态调整分辨率。 移动端直播推荐 false;视频通话若更看重流畅性,推荐 true(仅对 TRTCVideoStreamType.big 生效)。注意: 如有录制需求,开启后请确认分辨率的变化不会影响录制效果。 |
TRTCNetworkQosParam
网络带宽限制参数。
该设置决定 SDK 在各种网络环境下的带宽调控策略,例如弱网下是“保清晰”还是“保流畅”。
字段 | 类型 | 默认值 | 描述 |
preference | TRTCVideoQosPreference.clear | 保流畅:画面会有较多模糊,但能保持流畅不卡顿; 保清晰:画面尽可能清晰,但容易卡顿。 |
TRTCRenderParams
视频画面渲染参数。
字段 | 类型 | 默认值 | 描述 |
rotation | TRTCVideoRotation.rotation0 | ||
fillMode | TRTCVideoFillMode.fill | ||
mirrorType | TRTCVideoMirrorType.auto |
TRTCAudioQuality
声音音质。
TRTC 提供了三种精心调节过的模式,以满足各垂直行业对音质的差异化要求。
枚举值 | 数值 | 描述 |
speech | 1 | 流畅:采样率 16 kHz;单声道;码率 16 Kbps。 该模式的抗丢包能力最强,适合在线会议、语音通话等音频通话场景。 |
defaultMode | 2 | 默认:采样率 48 kHz;单声道;码率 50 Kbps。 该模式介于流畅模式和高音质模式之间,是 SDK 的默认模式,推荐使用。 |
music | 3 | 高音质:采样率 48 kHz;双声道 + 全频带;码率 128 Kbps。 适合需要高保真传输音乐的场景,例如在线 K 歌、音乐直播等。 |
TRTCAudioRecordingContent
音频录制内容类型。
枚举值 | 数值 | 描述 |
all | 0 | 录制本地和远端所有的声音。 |
local | 1 | 仅录制本地的声音。 |
remote | 2 | 仅录制远端的声音。 |
TRTCAudioFrameOperationMode
音频回调数据操作模式。
枚举值 | 数值 | 描述 |
readWrite | 0 | 读写模式:可以获取并修改回调的音频数据,为默认模式。 |
readOnly | 1 | 只读模式:仅从回调中获取音频数据。 |
TRTCAudioFrameFormat
音频帧内容格式。
枚举值 | 数值 | 描述 |
none | 0 | 无。 |
pcm | 1 | PCM 格式的音频数据。 |
TRTCAudioVolumeEvaluateParams
音量评估相关参数。
字段 | 类型 | 默认值 | 描述 |
enablePitchCalculation | bool | false | 是否开启本地人声音调计算。 |
enableSpectrumCalculation | bool | false | 是否开启声音频谱计算。 |
enableVadDetection | bool | false | 是否开启本地人声检测。 注意: |
interval | int | 300 | 推荐值:300。 当该值大于 0 时,默认开启音量提示,无需额外设置。 |
TRTCAudioFrameCallbackFormat
自定义音频回调的格式参数。
字段 | 类型 | 默认值 | 描述 |
sampleRate | int | 0 | 采样率,默认值:48000 Hz。有效值:16000、32000、44100、48000。 |
channel | int | 0 | 声道数,默认值:1(单声道)。有效值:1(单声道)、2(双声道)。 |
samplesPerCall | int | 0 | 采样点数,取值必须是 sampleRate / 100 的整数倍。 |
mode | TRTCAudioFrameOperationMode.readWrite |
TRTCVolumeInfo
音量大小。
用于表示音量值大小,您可以用它在 UI 上展示每个用户的音量。
字段 | 类型 | 默认值 | 描述 |
userId | String | '' | 说话者的用户 ID,为空表示本地用户。 |
volume | int | -1 | 说话者的音量,取值范围:0 - 100。 |
vad | int | -1 | 本地用户的人声检测结果。 0:非人声;1:人声。 |
pitch | double | -1 | 本地用户的人声音调,单位:Hz,取值范围:[0, 4000]。对于远端用户,该值恒为 0。 |
spectrumData | List<double>? | — | 音频频谱数据,将声音频率划分为 256 个频域,该字段记录各频域的能量值,每个能量值的取值范围为 [-300, 0],单位:dBFS。 |
TRTCBeautyStyle
美颜(磨皮)算法。
枚举值 | 数值 | 描述 |
smooth | 0 | 光滑风格,算法比较激进,磨皮效果更明显,适合秀场直播。 |
nature | 1 | 自然风格,算法保留更多面部细节,磨皮效果更自然,适合大多数直播场景。 |
TRTCWaterMarkSrcType
水印图片的源类型。
枚举值 | 数值 | 描述 |
file | 0 | 图片文件路径,支持 BMP、GIF、JPEG、PNG、TIFF、Exif、WMF、EMF 格式。 |
bgra32 | 1 | BGRA32 格式的内存块。 |
rgba32 | 2 | RGBA32 格式的内存块。 |
TRTCScreenCaptureSourceType
屏幕分享目标类型(仅桌面端)。
枚举值 | 数值 | 描述 |
unknown | -1 | 未定义。 |
window | 0 | 分享目标是某个应用的窗口。 |
screen | 1 | 分享目标是整个屏幕。 |
custom | 2 | 分享目标是用户自定义的数据源。 |
TRTCScreenCaptureSourceInfo
屏幕分享目标信息(仅桌面端)。
用户在进行屏幕分享时,可以选择采集整个桌面,也可以只分享某个程序的窗口。该结构用于描述待分享目标的信息,包括 ID、名称、缩略图等。本结构中的字段信息均是只读的。
字段 | 类型 | 默认值 | 描述 |
type | TRTCScreenCaptureSourceType.unknown | ||
viewId | int | 0 | 采集源的 ID。对于窗口,该字段表示窗口 ID;对于屏幕,该字段表示显示器 ID。 |
sourceName | String | '' | 采集源名称(UTF-8 编码)。 |
thumbBGRA | - | ||
iconBGRA | - | ||
isMinimizeWindow | bool | false | 窗口是否处于最小化状态。 |
isMainScreen | bool | false | 是否为主显示器(适用于多显示器场景)。 |
x | int | 0 | 屏幕或窗口的 X 坐标,单位:像素。 |
y | int | 0 | 屏幕或窗口的 Y 坐标,单位:像素。 |
width | int | 0 | 屏幕或窗口的宽度,单位:像素。 |
height | int | 0 | 屏幕或窗口的高度,单位:像素。 |
TRTCScreenCaptureSourceList
屏幕窗口列表。
字段 | 类型 | 默认值 | 描述 |
count | int | 0 | 窗口数量。 |
sourceList | List<TRTCScreenCaptureSourceInfo> | - |
TRTCScreenCaptureProperty
屏幕分享的高级控制参数。
字段 | 类型 | 默认值 | 描述 |
enableCaptureMouse | bool | true | 采集目标内容时是否同时采集鼠标。 |
enableHighLight | bool | true | 是否高亮正在分享的窗口(在分享目标周围绘制一个边框)。 |
enableHighPerformance | bool | true | 是否开启高性能模式(只在分享屏幕时会生效)。 开启后屏幕采集性能最佳,但会丧失抗遮挡能力。 如果同时开启 enableHighLight 和 enableHighPerformance,远端用户会看到高亮的边框。 |
highLightColor | int | 0 | 高亮边框的颜色,RGB 格式。传入 0 时使用默认颜色,默认颜色为 #FFE640。 |
highLightWidth | int | 0 | 高亮边框的宽度。传入 0 时使用默认描边宽度,默认宽度为 5 px,最大可设置为 50。 |
enableCaptureChildWindow | bool | false | 采集窗口时是否同时采集子窗口(子窗口与被采集窗口之间需要有 Owner 或 Popup 属性)。 |
TRTCImageBuffer
窗口缩略图与图标的存储结构。
字段 | 类型 | 默认值 | 描述 |
buffer | Uint8List? | - | BGRA 格式的图片内容。 |
length | int | 0 | 缓冲区大小。 |
width | int | 0 | 图片宽度。 |
height | int | 0 | 图片高度。 |
TRTCPublishMode
媒体流发布模式。
枚举值 | 数值 | 描述 |
unknown | 0 | 未定义。 |
bigStreamToCdn | 1 | |
subStreamToCdn | 2 | |
mixStreamToCdn | 3 | |
mixStreamToRoom | 4 |
TRTCUser
参与发布的用户信息。
字段 | 类型 | 默认值 | 描述 |
userId | String | '' | UTF-8 编码的用户 ID(必填)。例如,账号系统中某用户的 ID 是 mike,则设置为 mike。 |
intRoomId | int | 0 | 注意: 不能同时使用 intRoomId 和 strRoomId。若使用 strRoomId,则 intRoomId 需填 0;若两者都填,仅 intRoomId 生效。 |
strRoomId | String | '' | 注意: 不能同时使用 intRoomId 和 strRoomId。若使用 intRoomId,则 strRoomId 需留空;若两者都填,仅 intRoomId 生效。 |
TRTCPublishCdnUrl
CDN 转推的目标地址。
字段 | 类型 | 默认值 | 描述 |
rtmpUrl | String | '' | 发布到腾讯云或第三方 CDN 的目标地址(RTMP)。 不同 CDN 服务商的地址格式差异较大,请按服务商的要求填写有效地址,TRTC 后台服务会将标准格式的音视频流推送到该地址。 注意: 地址必须是 RTMP 格式,并满足服务商的要求,否则服务商可能会拒绝 TRTC 后台的推流请求。 |
isInternalLine | bool | true | 是否发布到腾讯云。 如果设置的目标地址是腾讯云提供的,请将该参数设为 true,此时不会产生转推费用。 |
TRTCPublishTarget
媒体流发布的目标配置。
字段 | 类型 | 默认值 | 描述 |
mode | TRTCPublishMode.unknown | 注意: 如需使用多种发布模式,可以多次调用 startPublishMediaStream,每次传入不同的 TRTCPublishTarget;每次调用只能使用一种模式。如需修改配置,请调用 updatePublishMediaStream。 | |
cdnUrlList | List<TRTCPublishCdnUrl> | - | 注意: 发布模式为 mixStreamToRoom 时无需设置该字段。 |
mixStreamIdentity | - | 注意: 仅在发布模式为 mixStreamToRoom 时需要设置。推荐设置为一个特殊的用户 ID,以便与通过 SDK 进房的主播区分;参与转码的用户无法订阅该转码流。 |
TRTCVideoLayout
转码流中每一路视频画面的布局。
字段 | 类型 | 默认值 | 描述 |
rect | - | ||
zOrder | int | 0 | 画面的层级,不可重复,取值范围:0 - 15。 |
fillMode | TRTCVideoFillMode.fill | ||
backgroundColor | int | 0 | 混流的背景色,取值必须是十六进制数,例如 0x61B9F1 表示 RGB 颜色值 (97,158,241)。默认值 0x000000(黑色)。 |
placeHolderImage | Uint8List | - | 占位图。如果某用户只发送音频,云端混流时会混入该图片。 默认为空,表示不使用占位图。 注意: 需要在 fixedVideoUser 中指定 userId;图片不超过 2 MB,支持 PNG、JPG、JPEG、BMP 格式,推荐使用半透明的 PNG 图片。 |
fixedVideoUser | - | 注意: 如果不指定 userId、intRoomId、strRoomId,TRTC 后台会按照您指定的布局自动混合房间中正在发送音视频的主播的流。 | |
fixedVideoStreamType | TRTCVideoStreamType.big |
TRTCWatermark
转码流中水印的布局。
TRTCStreamEncoderParam
媒体流编码输出参数。
字段 | 类型 | 默认值 | 描述 |
videoEncodedWidth | int | 0 | 发布流的视频宽度。推荐值:368。如果只混合音频流,为避免转码流中显示黑色画面,请将宽和高都设为 0。 |
videoEncodedHeight | int | 0 | 发布流的视频高度。推荐值:640。如果只混合音频流,为避免转码流中显示黑色画面,请将宽和高都设为 0。 |
videoEncodedFPS | int | 0 | 发布流的视频帧率,取值范围:(0, 30],默认值:20。 |
videoEncodedGOP | int | 0 | 发布流的关键帧间隔(GOP),取值范围:[1, 5],默认值:3,单位:秒。 |
videoEncodedKbps | int | 0 | 发布流的视频码率,单位:Kbps。设为 0 时,TRTC 会根据宽高自动计算合适的码率。 |
audioEncodedSampleRate | int | 0 | 发布流的音频采样率。有效值:48000、44100、32000、24000、16000、8000,默认值:48000,单位:Hz。 |
audioEncodedChannelNum | int | 0 | 发布流的声道数。有效值: 1(单声道); 2(双声道); 默认值:1。 |
audioEncodedKbps | int | 0 | 发布流的音频码率,取值范围:[32, 192],默认值:50,单位:Kbps。 |
audioEncodedCodecType | int | 0 | 发布流的音频编码格式。有效值: 0(LC-AAC); 1(HE-AAC); 2(HE-AACv2); 默认值:0。 注意: HE-AAC 和 HE-AACv2 支持的采样率为 48000、44100、32000、24000、16000;使用 HE-AACv2 时,输出流只能是双声道。 |
videoEncodedCodecType | int | 0 | 发布流的视频编码格式。有效值: 0(H264); 1(H265); 默认值:0。 |
videoSeiParams | String | '' | SEI 参数,以 JSON 字符串形式传入,默认为空。 支持的字段: payloadContent(必填,透传 SEI 的负载内容);payloadType(必填,取值为 5 或 [100, 254] 内的整数,不含 244);payloadUuid(payloadType 为 5 时必填,须为 32 位十六进制数);interval(可选,SEI 发送间隔,单位:毫秒,默认 1000);followIdr(可选,默认 false,为 true 时确保发送关键帧时携带 SEI)。 |
TRTCStreamMixingConfig
云端混流配置参数。
字段 | 类型 | 默认值 | 描述 |
backgroundColor | int | 0 | 混流的背景色,取值必须是十六进制数,例如 0x61B9F1 表示 RGB 颜色值 (97,158,241)。默认值 0x000000(黑色)。 |
backgroundImage | Uint8List | - | 混流的背景图,云端混流时会混入该图片。 默认为空,表示不使用背景图。 注意: 地址最长 512 字节,图片不超过 2 MB,支持 PNG、JPG、JPEG、BMP 格式,推荐使用半透明的 PNG 图片。 |
videoLayoutList | List<TRTCVideoLayout> | - | |
audioMixUserList | List<TRTCUser> | - | 注意: |
watermarkList | List<TRTCWatermark> | - |
TRTCSnapshotSourceType
本地视频截图的数据源。
SDK 可以从如下两种数据源中截取图片并保存成本地文件:
视频流:SDK 从视频流中截取原生的视频内容,截取的画面不受渲染控件的显示控制。
渲染层:SDK 从渲染控件中截取显示的视频内容,可以做到所见即所得,但如果显示区域过小,截取出的图片也会很小。
枚举值 | 数值 | 描述 |
stream | 0 | SDK 从视频流中截取原生的视频内容,截取的画面不受渲染控件的显示控制。 |
view | 1 | SDK 从渲染控件中截取显示的视频内容,可以做到所见即所得,但如果显示区域过小,截取出的图片也会很小。 |
capture | 2 | SDK 从采集控件中截取采集的视频内容,可以截取到更清晰的画面。 |
TRTCLocalRecordType
本地媒体录制类型。
枚举值 | 数值 | 描述 |
audio | 0 | 仅录制音频。 |
video | 1 | 仅录制视频。 |
both | 2 | 同时录制音频和视频。 |
TRTCLocalRecordingParams
本地媒体录制参数。
字段 | 类型 | 默认值 | 描述 |
filePath | String | '' | 录制文件的地址(必填),请确保该路径有效且有读写权限,否则无法生成录制文件。 注意: 该路径需要精确到文件名及扩展名,扩展名决定录制文件的格式,目前仅支持 MP4 格式。例如指定路径为 mypath/record/test.mp4,表示希望 SDK 生成一个 MP4 格式的本地视频文件。 |
recordType | TRTCLocalRecordType.both | ||
interval | int | -1 | 录制信息的更新频率,单位:毫秒,取值范围:1000 - 10000。默认值 -1 表示不回调。 |
maxDurationPerFile | int | 0 | 每个录制文件分片的最大时长,单位:毫秒,最小值为 10000。默认值 0 表示不分片。 |
TRTCQuality
网络质量。
TRTC 每两秒会对当前的网络质量进行评估,评估结果分为六个等级:
excellent 表示最好,down 表示最差。枚举值 | 数值 | 描述 |
unknown | 0 | 未定义。 |
excellent | 1 | 当前网络非常好。 |
good | 2 | 当前网络比较好。 |
poor | 3 | 当前网络一般。 |
bad | 4 | 当前网络较差。 |
vBad | 5 | 当前网络很差。 |
down | 6 | 当前网络不满足 TRTC 的最低要求。 |
TRTCAVStatusType
音视频播放状态。
枚举值 | 数值 | 描述 |
stopped | 0 | 停止播放。 |
playing | 1 | 正在播放。 |
loading | 2 | 正在加载。 |
TRTCAVStatusChangeReason
播放状态变化的原因。
枚举值 | 数值 | 描述 |
internal | 0 | 默认值。 |
bufferingBegin | 1 | 因网络拥塞,流进入 loading 状态。 |
bufferingEnd | 2 | 网络恢复后,流进入 playing 状态。 |
localStarted | 3 | 本地直接调用了播放相关接口,流进入 playing 状态。 |
localStopped | 4 | 本地直接调用了停止相关接口,流进入 stopped 状态。 |
remoteStarted | 5 | 远端用户开始(或恢复)发布音视频流,流进入 loading 或 playing 状态。 |
remoteStopped | 6 | 远端用户停止(或暂停)发布音视频流,流进入 stopped 状态。 |
TRTCSpeedTestScene
网络测速场景。
枚举值 | 数值 | 描述 |
delayTesting | 1 | 延迟测速。 |
delayAndBandwidthTesting | 2 | 延迟和带宽测速。 |
onlineChorusTesting | 3 | 在线合唱测速。 |
TRTCQualityInfo
网络质量信息。
字段 | 类型 | 默认值 | 描述 |
userId | String | 必填 | 用户 ID。 |
quality | 必填 |
TRTCLocalStatistics
本地音视频统计指标。
字段 | 类型 | 默认值 | 描述 |
width | int | -1 | 本地视频宽度,单位:像素。 |
height | int | -1 | 本地视频高度,单位:像素。 |
frameRate | int | -1 | 本地视频帧率,单位:fps,即每秒有多少个视频帧。 |
videoBitrate | int | -1 | 本地视频码率,单位:Kbps,即每秒产生多少视频数据。 |
audioSampleRate | int | -1 | 本地音频采样率,单位:Hz。 |
audioBitrate | int | -1 | 本地音频码率,单位:Kbps,即每秒产生多少音频数据。 |
streamType | TRTCVideoStreamType.big | ||
audioCaptureState | int | -1 | 音频设备的采集状态。 0:正常;1:检测到长时间静音;2:检测到破音;3:检测到声音异常间断。 |
TRTCRemoteStatistics
远端音视频统计指标。
字段 | 类型 | 默认值 | 描述 |
userId | String | '' | 用户 ID。 |
audioPacketLoss | int | -1 | 音频流的总丢包率(%)。 该值表示音视频流经过“主播 > 云端 > 观众”的完整传输链路后,最终在观众端统计到的丢包率。 该值越小越好,为 0 表示音频流的数据已经完整地到达了观众端。 如果 downLoss 为 0 但该值不为 0,说明“云端 > 观众”链路上没有丢包,但“主播 > 云端”链路上有不可恢复的丢包。 |
videoPacketLoss | int | -1 | 视频流的总丢包率(%)。 该值表示音视频流经过“主播 > 云端 > 观众”的完整传输链路后,最终在观众端统计到的丢包率。 该值越小越好,为 0 表示视频流的数据已经完整地到达了观众端。 |
width | int | -1 | 远端视频宽度,单位:像素。 |
height | int | -1 | 远端视频高度,单位:像素。 |
frameRate | int | -1 | 远端视频帧率,单位:fps。 |
videoBitrate | int | -1 | 远端视频码率,单位:Kbps。 |
audioSampleRate | int | -1 | 远端音频采样率,单位:Hz。 |
audioBitrate | int | -1 | 远端音频码率,单位:Kbps。 |
jitterBufferDelay | int | -1 | 播放延迟,单位:毫秒。 为了避免网络抖动和网络包乱序导致的声音和画面卡顿,TRTC 会在播放端管理一个播放缓冲区,用于对接收到的网络数据包进行整理。该缓冲区的大小会根据当前的网络质量进行自适应调整,其大小折算成以毫秒为单位的时间长度即为该值。 |
point2PointDelay | int | -1 | 端到端延迟,单位:毫秒。 该值代表“主播 > 云端 > 观众”的延迟,更准确地说,它代表了“采集 > 编码 > 网络传输 > 接收 > 缓冲 > 解码 > 播放”的全链路延迟。 该值仅在本地和远端 SDK 均为 8.5 及以上版本时才生效;如果远端 SDK 版本低于 8.5,该值恒为 0,没有意义。 |
audioTotalBlockTime | int | -1 | 音频播放的累计卡顿时长,单位:毫秒。 |
audioBlockRate | int | -1 | 音频播放的卡顿率(%)。 计算方式为:音频播放的累计卡顿时长( audioTotalBlockTime)/ 音频播放的总时长。 |
videoTotalBlockTime | int | -1 | 视频播放的累计卡顿时长,单位:毫秒。 |
videoBlockRate | int | -1 | 视频播放的卡顿率(%)。 计算方式为:视频播放的累计卡顿时长( videoTotalBlockTime)/ 视频播放的总时长。 |
finalLoss | int | -1 | 音视频流的总丢包率(%)。 已废弃,请改用 audioPacketLoss 和 videoPacketLoss。 |
remoteNetworkUplinkLoss | int | -1 | 远端用户上行到云端的丢包率(%)。 该值越小越好,为 0 表示上行网络质量非常好,上传到云端的数据包基本没有丢失;为 30% 表示 SDK 发送到云端的音视频数据包中有 30% 在传输链路上丢失。 |
remoteNetworkRTT | int | -1 | 远端 SDK 到云端的往返延迟,单位:毫秒。 该值代表一个网络数据包从远端 SDK 发送到云端、再从云端返回远端 SDK 的总耗时,即“SDK > 云端 > SDK”链路的总时长。 该值越小越好,低于 50 ms 表示通话延迟较短;高于 200 ms 表示通话延迟较长。 |
streamType | TRTCVideoStreamType.big |
TRTCStatistics
网络和性能的汇总统计指标。
字段 | 类型 | 默认值 | 描述 |
appCpu | int | -1 | 当前应用的 CPU 使用率(%),Android 8.0 及以上系统不支持。 |
systemCpu | int | -1 | 当前系统的 CPU 使用率(%),Android 8.0 及以上系统不支持。 |
upLoss | int | -1 | 从 SDK 上行到云端的丢包率(%)。 该值越小越好,为 0 表示上行网络质量非常好,上传到云端的数据包基本没有丢失;为 30% 表示 SDK 发送到云端的音视频数据包中有 30% 在传输链路上丢失。 |
downLoss | int | -1 | 从云端下行到 SDK 的丢包率(%)。 该值越小越好,为 0 表示下行网络质量非常好,从云端接收的数据包基本没有丢失;为 30% 表示云端发送到 SDK 的音视频数据包中有 30% 在传输链路上丢失。 |
rtt | int | -1 | 从 SDK 到云端的往返延迟,单位:毫秒。 该值代表一个网络数据包从 SDK 发送到云端、再从云端返回 SDK 的总耗时,即“SDK > 云端 > SDK”链路的总时长。 该值越小越好,低于 50 ms 表示通话延迟较短;高于 200 ms 表示通话延迟较长。 |
gatewayRtt | int | -1 | 从 SDK 到网关的往返延迟,单位:毫秒。 该值代表一个网络数据包从 SDK 发送到网关、再从网关返回 SDK 的总耗时,即“SDK > 网关 > SDK”链路的总时长。 注意: 该值在蜂窝网络下无效。 |
sentBytes | int | -1 | 总发送字节数,包含信令数据和音视频数据。 |
receivedBytes | int | -1 | 总接收字节数,包含信令数据和音视频数据。 |
localStatisticsArray | List<TRTCLocalStatistics>? | - | 由于本地可能有三路音视频流(即高清大画面、低清小画面和辅路画面),所以本地音视频统计信息是一个数组。 |
remoteStatisticsArray | List<TRTCRemoteStatistics>? | - | 由于同时可能有多个远端用户,且每个用户可能有多路音视频流,所以远端音视频统计信息是一个数组。 |
TRTCSpeedTestParams
网络测速参数。
字段 | 类型 | 默认值 | 描述 |
sdkAppId | int | 0 | |
userId | String | '' | |
userSig | String | '' | |
expectedUpBandwidth | int | 0 | 预期的上行带宽,单位:Kbps,取值范围:10 - 5000,为 0 时不测试上行带宽。 注意: 当 scene 为 onlineChorusTesting 时,为了获取更准确的 RTT / 抖动等信息,取值范围限制为 10 - 1000。 |
expectedDownBandwidth | int | 0 | 预期的下行带宽,单位:Kbps,取值范围:10 - 5000,为 0 时不测试下行带宽。 注意: 当 scene 为 onlineChorusTesting 时,为了获取更准确的 RTT / 抖动等信息,取值范围限制为 10 - 1000。 |
scene | TRTCSpeedTestScene.delayAndBandwidthTesting |
TRTCSpeedTestResult
网络测速结果。
字段 | 类型 | 默认值 | 描述 |
success | bool | false | 网络测速是否成功。 |
errMsg | String | '' | 网络测速的错误信息。 |
ip | String | '' | 服务器 IP 地址。 |
quality | TRTCQuality.unknown | ||
upLostRate | double | 0.0 | 上行丢包率,取值范围:0 - 1.0。例如 0.3 表示向服务器发送的每 10 个数据包中可能有 3 个丢失。 |
downLostRate | double | 0.0 | 下行丢包率,取值范围:0 - 1.0。例如 0.2 表示从服务器接收的每 10 个数据包中可能有 2 个丢失。 |
rtt | int | 0 | 延迟,单位:毫秒,即当前设备到 TRTC 服务器的往返时间。该值越小越好,正常范围为 10 - 100 ms。 |
availableUpBandwidth | int | 0 | 上行带宽,单位:Kbps, -1 表示无效值。 |
availableDownBandwidth | int | 0 | 下行带宽,单位:Kbps, -1 表示无效值。 |
upJitter | int | 0 | 上行数据包抖动,单位:毫秒,反映当前网络环境下数据通信的稳定性。该值越小越好,正常范围为 0 - 100 ms, -1 表示测速未获取到有效值。通常 Wi-Fi 网络的抖动会比 4G / 5G 环境略大。 |
downJitter | int | 0 | 下行数据包抖动,单位:毫秒,反映当前网络环境下数据通信的稳定性。该值越小越好,正常范围为 0 - 100 ms, -1 表示测速未获取到有效值。通常 Wi-Fi 网络的抖动会比 4G / 5G 环境略大。 |
TRTCVideoPixelFormat
视频像素格式。
TRTC 提供自定义采集和自定义渲染功能:自定义采集时,可以用下列枚举值描述您采集的视频的像素格式;自定义渲染时,可以指定您期望 SDK 回调的视频像素格式。
枚举值 | 数值 | 描述 |
unknown | 0 | 未定义的格式。 |
i420 | 1 | YUV420P(I420)格式。 |
texture2D | 2 | OpenGL 2D 纹理格式。 |
bgra32 | 3 | BGRA32 格式。 |
nv21 | 4 | NV21 格式。 |
rgba32 | 5 | RGBA 格式。 |
TRTCVideoBufferType
视频数据传递方式。
自定义采集和自定义渲染时,需要用下列枚举值指定视频数据的传递方式:
内存 Buffer:在 iOS 上效率较高,在 Android 上效率较低,是目前 Windows 上唯一支持的方式。
纹理:在 iOS 和 Android 上效率都较高,但 Windows 不支持。使用该方式需要您对 OpenGL 编程有一定了解。
枚举值 | 数值 | 描述 |
unknown | 0 | 未定义的传递方式。 |
buffer | 1 | 使用内存 Buffer 传递视频数据。 iOS: PixelBuffer;Android:JNI 层的 Direct Buffer;Windows:内存数据块。 |
texture | 3 | 使用 OpenGL 纹理传递视频数据。 |
textureD3D11 | 4 | 使用 D3D11 纹理传递视频数据。 |
TRTCTexture
视频纹理数据。
字段 | 类型 | 默认值 | 描述 |
glTextureId | int | 0 | 视频纹理 ID。 |
glContext | int | 0 | 纹理对应的 OpenGL 上下文,适用于 Windows 和 Android。 |
d3d11TextureId | int | 0 | D3D11 纹理,即 ID3D11Texture2D 的指针,仅适用于 Windows。 |
TRTCVideoFrame
视频帧信息。
用于描述一帧视频画面的原始数据,即编码前或解码后的图像数据。
字段 | 类型 | 默认值 | 描述 |
videoFormat | TRTCVideoPixelFormat.unknown | ||
bufferType | TRTCVideoBufferType.unknown | ||
texture | TRTCTexture? | - | |
data | Uint8List | - | bufferType 为 buffer 时的视频数据,承载 C++ 层的内存数据块。 |
length | int | 0 | 视频数据长度,单位:字节。I420 格式下为 width * height * 3 / 2;BGRA32 格式下为 width * height * 4。 |
width | int | 640 | 视频宽度,请填写传入视频数据的宽度。 |
height | int | 360 | 视频高度,请填写传入视频数据的高度。 |
timestamp | int | 0 | 视频帧时间戳,单位:毫秒。 自定义视频采集时可以设为 0,此时 SDK 会自动填充该字段,但请“均匀”地设置投送数据的间隔。 |
rotation | TRTCVideoRotation.rotation0 |
TRTCAudioFrame
音频帧数据。
字段 | 类型 | 默认值 | 描述 |
audioFormat | TRTCAudioFrameFormat.none | ||
data | Uint8List | - | 音频数据。 |
length | int | 0 | 音频数据长度。 |
sampleRate | int | 0 | 采样率。 |
channel | int | 0 | 声道数。 |
timestamp | int | 0 | 时间戳,单位:毫秒。 |
extraData | Uint8List | - | 音频帧中的额外数据。远端用户通过 onLocalProcessedAudioFrame 添加到音频帧中的消息,会通过该字段回调出来。 |
extraDataLength | int | 0 | 额外数据的长度。 |
TRTCLogLevel
日志级别。
枚举值 | 数值 | 描述 |
verbose | 0 | 输出所有级别的日志。 |
debug | 1 | 输出 DEBUG、INFO、WARNING、ERROR 和 FATAL 级别的日志。 |
info | 2 | 输出 INFO、WARNING、ERROR 和 FATAL 级别的日志。 |
warning | 3 | 输出 WARNING、ERROR 和 FATAL 级别的日志。 |
error | 4 | 输出 ERROR 和 FATAL 级别的日志。 |
fatal | 5 | 仅输出 FATAL 级别的日志。 |
none | 6 | 不输出任何 SDK 日志。 |
TRTCRect
矩形区域坐标,单位:像素。
字段 | 类型 | 默认值 | 描述 |
left | int | 0 | 矩形左边界的坐标。 |
top | int | 0 | 矩形上边界的坐标。 |
right | int | 0 | 矩形右边界的坐标。 |
bottom | int | 0 | 矩形下边界的坐标。 |
TRTCSize
尺寸(宽高),单位:像素。
字段 | 类型 | 默认值 | 描述 |
width | int | 0 | 宽度。 |
height | int | 0 | 高度。 |