关键类型定义

最近更新时间:2019-06-12 19:06:57

TRTCParams

功能

进房相关参数。

介绍

只有该参数填写正确,才能顺利调用 enterRoom 进入 roomId 所指定的音视频房间。

属性列表

属性 类型 字段含义 推荐取值
sdkAppId uint32_t 应用标识(必填),腾讯视频云基于 sdkAppId 完成计费统计。 在腾讯云 TRTC 控制台 中创建应用,之后可以在账号信息页面中得到该 ID。
userId const char * 用户标识(必填)。当前用户的 userId,相当于用户名,UTF-8编码。 如果一个用户在您的账号系统中的 ID 为“abc”,则 userId 即可设置为“abc”。
userSig const char * 用户签名(必填),当前 userId 对应的验证签名,相当于登录密码。 请参考 如何计算UserSig
roomId uint32_t 房间号码(必填),指定房间号,在同一个房间里的用户(userId)可以彼此看到对方并进行视频通话。 您可以随意指定,但请不要重复,如果您的用户账号 ID 是数字类型的,可以直接用创建者的用户 ID 作为 roomId。
role TRTCRoleType 直播场景下的角色,仅适用于直播场景(TRTCAppSceneLIVE),视频通话场景下指定无效。 默认值:主播(TRTCRoleAnchor)。
privateMapKey const char * 房间签名(非必填),如果您希望某个房间只能让特定的某些 userId 进入,就需要使用 privateMapKey 进行权限保护。 仅建议有高级别安全需求的客户使用,参考文档:进房权限保护
businessInfo const char * 业务数据(非必填),某些非常用的高级特性才需要用到此字段。 不建议使用。

TRTCVideoEncParam

功能

视频编码参数。

介绍

该设置决定了远端用户看到的画面质量(同时也是云端录制出的视频文件的画面质量)。

属性列表

属性 类型 字段含义 推荐取值 特别说明
videoResolution TRTCVideoResolution 视频分辨率。 - 视频通话建议选择360 × 640及以下分辨率,resMode 选择 Portrait。- 手机直播建议选择 540 × 960,resMode 选择 Portrait。
- Window 和 iMac 建议选择 640 × 360 及以上分辨率,resMode 选择 Landscape。
您在 TRTCVideoResolution 只能找到横屏模式的分辨率,例如:640 × 360 这样的分辨率。 如果想要使用竖屏分辨率,请指定 resMode 为 Portrait,例如:640 × 360 + Portrait = 360 × 640。
resMode TRTCVideoResolutionMode 分辨率模式(横屏分辨率 - 竖屏分辨率)。 手机直播建议选择 Portrait,Window 和 Mac 建议选择 Landscape。 如果 videoResolution 指定分辨率 640 × 360,resMode 指定模式为 Portrait,则最终编码出的分辨率为360 × 640。
videoFps uint32_t 视频采集帧率。 15fps 或 20fps,10fps 以下会有轻微卡顿感,5fps 以下卡顿感明显,20fps 以上的帧率则过于浪费(电影的帧率也只有 24fps)。 很多 Android 手机的前置摄像头并不支持15fps以上的采集帧率,部分过于突出美颜功能的 Android 手机前置摄像头的采集帧率可能低于10fps。
videoBitrate uint32_t 视频上行码率。 推荐设置请参考本文件前半部分 TRTCVideoResolution 定义处的注释说明。 码率太低会导致视频中有很多的马赛克。

TRTCNetworkQosParam

功能

网络流控相关参数。

介绍

网络流控相关参数,该设置决定了SDK在各种网络环境下的调控方向(比如弱网下是“保清晰”还是“保流畅”)。

属性列表

属性 类型 字段含义 推荐取值 特别说明
preference TRTCVideoQosPreference 弱网下是“保清晰”还是“保流畅”。 - - 弱网下保流畅:在遭遇弱网环境时,画面会变得模糊,且会有较多马赛克,但可以保持流畅不卡顿
- 弱网下保清晰:在遭遇弱网环境时,画面会尽可能保持清晰,但可能会更容易出现卡顿。
controlMode TRTCQosControlMode 视频分辨率(云端控制 - 客户端控制)。 云端控制。 - Client 模式:客户端控制模式,用于 SDK 开发内部调试,客户请勿使用
- Server 模式(默认):云端控制模式,若没有特殊原因,请直接使用该模式。

TRTCQualityInfo

功能

视频质量。

介绍

表示视频质量的好坏,通过这个数值,您可以在 UI 界面上用图标表征 userId 的通话线路质量。

属性列表

属性 类型 字段含义
userId const char * 用户标识。
quality TRTCQuality 视频质量。

TRTCVolumeInfo

功能

音量大小。

介绍

表示语音音量的评估大小,通过这个数值,您可以在 UI 界面上用图标表征 userId 是否有在说话。

属性列表

属性 类型 字段含义
userId const char * 说话者的 userId,字符编码格式是 UTF-8。
volume uint32_t 说话者的音量, 取值范围0 - 100。

TRTCSpeedTestResult

功能

网络测速结果。

介绍

您可以在用户进入房间前通过 TRTCCloud 的 startSpeedTest 接口进行测速 (注意:请不要在通话中调用), 测速结果会每2 - 3秒钟返回一次,每次返回一个 IP 地址的测试结果。

说明:

  • quality 是内部通过评估算法测算出的网络质量,loss 越低,rtt 越小,得分也就越高。
  • upLostRate 是指上行丢包率,例如0.3代表每向服务器发送10个数据包,可能有3个会在中途丢失。
  • downLostRate 是指下行丢包率,例如0.2代表从服务器每收取10个数据包,可能有2个会在中途丢失。
  • rtt 是指当前设备到腾讯云服务器的一次网络往返时间,正常数值在10ms - 100ms之间。

属性列表

属性 类型 字段含义
ip const char * 服务器 IP 地址。
quality TRTCQuality 网络质量,内部通过评估算法测算出的网络质量,loss 越低,rtt 越小,得分也就越高。
upLostRate float 上行丢包率,范围是[0 - 1.0],例如0.3代表每向服务器发送10个数据包,可能有3个会在中途丢失。
downLostRate float 下行丢包率,范围是[0 - 1.0],例如0.2代表从服务器每收取10个数据包,可能有2个会在中途丢失。
rtt int 延迟(毫秒),代表 SDK 跟服务器一来一回之间所消耗的时间,这个值越小越好,正常数值在10ms - 100ms之间。

TRTCMixUser

功能

云端混流中每一路子画面的位置信息。

介绍

TRTCMixUser 用于指定每一路(即每一个 userId)视频画面的具体摆放位置。

属性列表

属性 类型 字段含义
userId const char * 参与混流的 userId。
roomId const char * 参与混流的 roomId,跨房流传入的实际 roomId,当前房间流传入 roomId = NULL。
rect RECT 图层位置坐标以及大小,左上角为坐标原点(0,0) (绝对像素值)。
zOrder int 图层层次(1 - 15)不可重复。
pureAudio bool 是否纯音频。
streamType TRTCVideoStreamType 参与混合的是主路画面(TRTCVideoStreamTypeBig)或屏幕分享(TRTCVideoStreamTypeSub)画面。

TRTCTranscodingConfig

功能

云端混流(转码)配置。

介绍

包括最终编码质量和各路画面的摆放位置。

属性列表

属性 类型 字段含义 推荐取值
mode TRTCTranscodingConfigMode 转码config模式。 -
appId uint32_t 腾讯云直播 AppID。 请在 实时音视频控制台 选择已经创建的应用,单击【帐号信息】后,在“直播信息”中获取。
bizId uint32_t 腾讯云直播 bizid。 请在 实时音视频控制台 选择已经创建的应用,单击【帐号信息】后,在“直播信息”中获取。
videoWidth uint32_t 最终转码后的视频分辨率的宽度(px)。 -
videoHeight uint32_t 最终转码后的视频分辨率的高度(px)。 -
videoBitrate uint32_t 最终转码后的视频分辨率的码率(kbps)。 -
videoFramerate uint32_t 最终转码后的视频分辨率的帧率(FPS)。 15
videoGOP uint32_t 最终转码后的视频分辨率的关键帧间隔(也被称为 GOP),单位秒。 3
audioSampleRate uint32_t 最终转码后的音频采样率。 48000
audioBitrate uint32_t 最终转码后的音频码率,单位:K。 64
audioChannels uint32_t 最终转码后的音频声道数。 2
mixUsersArray TRTCMixUser * 每一路子画面的位置信息。 -
mixUsersArraySize uint32_t 数组 mixUsersArray 的大小。 -

TRTCPublishCDNParam

功能

CDN 旁路推流参数。

属性列表

属性 类型 字段含义
appId uint32_t 腾讯云 AppID,请在 实时音视频控制台 选择已经创建的应用,单击【帐号信息】后,在“直播信息”中获取。
bizId uint32_t 腾讯云直播 bizid,请在 实时音视频控制台 选择已经创建的应用,单击【帐号信息】后,在“直播信息”中获取。
url const char * 旁路转推的 URL。

TRTCLocalStatistics

功能

自己本地的音视频统计信息。

属性列表

属性 类型 字段含义
width uint32_t 视频宽度。
height uint32_t 视频高度。
frameRate uint32_t 帧率(fps)。
videoBitrate uint32_t 视频发送码率(Kbps)。
audioSampleRate uint32_t 音频采样率(Hz)。
audioBitrate uint32_t 音频发送码率(Kbps)。
streamType TRTCVideoStreamType 流类型(大画面 | 小画面 | 辅路画面)。

TRTCRemoteStatistics

功能

远端成员的音视频统计信息。

属性列表

属性 类型 字段含义
userId const char * 用户 ID,指定是哪个用户的视频流。
finalLoss uint32_t 该线路的总丢包率(%)
这个值越小越好,比如:0的丢包率代表网络很好。 这个丢包率是该线路的 userId 从上行到服务器再到下行的总丢包率。 如果 downLoss 为 0%, 但是 finalLoss 不为0,说明该 userId 在上行就出现了无法恢复的丢包。
width uint32_t 视频宽度。
height uint32_t 视频高度。
frameRate uint32_t 接收帧率(fps)。
videoBitrate uint32_t 视频码率(Kbps)。
audioSampleRate uint32_t 音频采样率(Hz)。
audioBitrate uint32_t 音频码率(Kbps)。
streamType TRTCVideoStreamType 流类型(大画面 | 小画面 | 辅路画面)。

TRTCStatistics

功能

统计数据。

属性列表

属性 类型 字段含义
upLoss uint32_t C -> S 上行丢包率(%), 这个值越小越好,例如,0的丢包率代表网络很好, 而30%的丢包率则意味着 SDK 向服务器发送的每10个数据包中就会有3个会在上行传输中丢失。
downLoss uint32_t S -> C 下行丢包率(%), 这个值越小越好,例如,0的丢包率代表网络很好, 而30%的丢包率则意味着服务器向 SDK 发送的每10个数据包中就会有3个会在下行传输中丢失。
appCpu uint32_t 当前 App 的 CPU 使用率(%)。
systemCpu uint32_t 当前系统的 CPU 使用率(%)。
rtt uint32_t 延迟(毫秒), 代表 SDK 跟服务器一来一回之间所消耗的时间,这个值越小越好。 一般低于50ms的 rtt 是比较理想的情况,而高于100ms的 rtt 会引入较大的通话延时。 由于数据上下行共享一条网络连接,所以 local 和 remote 的 rtt 相同。
receivedBytes uint32_t 总接收字节数(包含信令和音视频)。
sentBytes uint32_t 总发送字节总数(包含信令和音视频)。
localStatisticsArray TRTCLocalStatistics * 自己本地的音视频统计信息,由于可能有大画面、小画面以及辅路画面等多路的情况,所以是一个数组。
localStatisticsArraySize uint32_t 数组 localStatisticsArray 的大小。
remoteStatisticsArray TRTCRemoteStatistics * 远端成员的音视频统计信息,由于可能有大画面、小画面以及辅路画面等多路的情况,所以是一个数组。
remoteStatisticsArraySize uint32_t 数组 remoteStatisticsArray 的大小。

TRTCVideoResolution

功能

视频分辨率。

介绍

此处仅定义了横屏分辨率,如果要使用360 × 640这样的竖屏分辨率,需要同时指定 TRTCVideoResolutionMode 为 Portrait。

枚举 含义
TRTCVideoResolution_120_120 宽高比1:1。
TRTCVideoResolution_160_160 [C] 建议码率100kbps。
TRTCVideoResolution_270_270 [C] 建议码率200kbps。
TRTCVideoResolution_480_480 [C] 建议码率350kbps。
TRTCVideoResolution_160_120 宽高比4:3。
TRTCVideoResolution_240_180 [C] 建议码率150kbps。
TRTCVideoResolution_280_210 [C] 建议码率200kbps。
TRTCVideoResolution_320_240 [C] 建议码率250kbps。
TRTCVideoResolution_400_300 [C] 建议码率300kbps。
TRTCVideoResolution_480_360 [C] 建议码率400kbps。
TRTCVideoResolution_640_480 [C] 建议码率600kbps。
TRTCVideoResolution_960_720 [C] 建议码率1000kbps。
TRTCVideoResolution_160_90 宽高比16:9。
TRTCVideoResolution_256_144 [C]
TRTCVideoResolution_320_180 [C] 建议码率250kbps。
TRTCVideoResolution_480_270 [C] 建议码率350kbps。
TRTCVideoResolution_640_360 [C] 建议码率550kbps。
TRTCVideoResolution_960_540 [C] 建议码率850kbps。
TRTCVideoResolution_1280_720 [C] 摄像头采集 - 建议码率1200kbps。
TRTCVideoResolution_1920_1080 [S] 屏幕分享 - 建议码率800kbps。

TRTCVideoResolutionMode

功能

视频分辨率模式。

介绍

  • 横屏分辨率:TRTCVideoResolution_640_360 + TRTCVideoResolutionModeLandscape = 640 × 360
  • 竖屏分辨率:TRTCVideoResolution_640_360 + TRTCVideoResolutionModePortrait = 360 × 640。
枚举 含义
TRTCVideoResolutionModeLandscape 横屏分辨率。
TRTCVideoResolutionModePortrait 竖屏分辨率。

TRTCVideoStreamType

功能

视频流类型。

介绍

TRTC 内部有三种不同的音视频流,分别是:

  • 主画面:最常用的一条线路,一般用来传输摄像头的视频数据。
  • 小画面:跟主画面的内容相同,但是分辨率和码率更低。
  • 辅流画面:一般用于屏幕分享,以及远程播片(比如老师放一段视频给学生)。

说明:

  • 如果主播的上行网络和性能比较好,则可以同时送出大小两路画面。
  • SDK 不支持单独开启小画面,小画面必须依附于主画面而存在。
枚举 含义
TRTCVideoStreamTypeBig 大画面视频流。
TRTCVideoStreamTypeSmall 小画面视频流。
TRTCVideoStreamTypeSub 辅流(屏幕分享)。

TRTCQuality

功能

画质级别。

介绍

TRTC SDK 对画质定义了六种不同的级别,Excellent 代表最好,Down 代表不可用。

枚举 含义
TRTCQuality_Unknown 未定义。
TRTCQuality_Excellent 最好。
TRTCQuality_Good 好。
TRTCQuality_Poor 一般。
TRTCQuality_Bad 差。
TRTCQuality_Vbad 很差。
TRTCQuality_Down 不可用。

TRTCVideoFillMode

功能

视频画面填充模式。

介绍

如果画面的显示分辨率不等于画面的原始分辨率,就需要您设置画面的填充模式:

  • TRTCVideoFillMode_Fill,图像铺满屏幕,超出显示视窗的视频部分将被截掉,所以画面显示可能不完整。
  • TRTCVideoFillMode_Fit,图像长边填满屏幕,短边区域会被填充黑色,但画面的内容肯定是完整的。
枚举 含义
TRTCVideoFillMode_Fill 图像铺满屏幕,超出显示视窗的视频部分将被截掉。
TRTCVideoFillMode_Fit 图像长边填满屏幕,短边区域会被填充黑色。

TRTCBeautyStyle

功能

美颜(磨皮)算法。

介绍

TRTC SDK 内置了多种不同的磨皮算法,您可以选择最适合您产品定位的方案。

枚举 含义
TRTCBeautyStyleSmooth 光滑,适用于美女秀场,效果比较明显。
TRTCBeautyStyleNature 自然,磨皮算法更多地保留了面部细节,主观感受上会更加自然。

TRTCAppScene

功能

应用场景。

介绍

TRTC 可用于视频会议和在线直播等多种应用场景,针对不同的应用场景,TRTC SDK 的内部会进行不同的优化配置:

  • VideoCall:视频通话场景,即绝大多数时间都是两人或两人以上视频通话的场景,比如1v1的在线课程辅导,1vN (N < 8) 的视频会议或者小班课堂。
  • LIVE:在线直播场景,即绝大多数时间都是一人直播,偶尔有多人视频互动的场景,比如美女秀场连麦等场景。
枚举 含义
TRTCAppSceneVideoCall 视频通话场景,内部编码器和网络协议优化侧重流畅性,降低通话延迟和卡顿率。
TRTCAppSceneLIVE 在线直播场景,内部编码器和网络协议优化侧重性能和兼容性,性能和清晰度表现更佳。

TRTCRoleType

功能

角色,仅适用于直播场景(TRTCAppSceneLIVE)。

介绍

在直播场景中,多数用户只是观众,只有个别用户是主播,这种角色区分可以有利于 TRTC 进行更好的定向优化。

  • Anchor:主播,可以上行视频和音频,一个房间里的主播人数不能超过50人。
  • Audience:观众,只能观看,不能上行视频和音频,一个房间里的观众人数没有上限。
枚举 含义
TRTCRoleAnchor 主播。
TRTCRoleAudience 观众。

TRTCQosControlMode

功能

流控模式。

介绍

TRTC SDK 内部需要时刻根据网络情况调整内部的编解码器和网络模块,以便能够对网络的变化做出反应。 为了支持快速算法升级,SDK 内部设置了两种不同的流控模式:

  • ModeClient: 本地控制,用于 SDK 开发内部调试,客户请勿使用。
  • ModeServer: 云端控制,推荐模式,也是默认默认。

说明:

推荐您使用云端控制,这样每当我们升级 Qos 算法时,您无需升级 SDK 即可体验更好的效果。

枚举 含义
TRTCQosControlModeClient 客户端控制(用于 SDK 开发内部调试,客户请勿使用)。
TRTCQosControlModeServer 云端控制 (默认)。

TRTCVideoQosPreference

功能

画质偏好。

介绍

指当 TRTC SDK 在遇到弱网络环境时,您是希望“保清晰”还是“保流畅”:

  • Smooth:弱网下保流畅,在遭遇弱网环境时首先确保声音的流畅和优先发送,画面会变得模糊且会有较多马赛克,但可以保持流畅不卡顿。
  • Clear:弱网下保清晰,在遭遇弱网环境时,画面会尽可能保持清晰,但可能会更容易出现卡顿。
枚举 含义
TRTCVideoQosPreferenceSmooth 弱网下保流畅。
TRTCVideoQosPreferenceClear 弱网下保清晰。

TRTCLogLevel

功能

Log 级别。

枚举 含义
TRTCLogLevelNone 不输出任何 SDK Log。
TRTCLogLevelVerbose 输出所有级别的 Log。
TRTCLogLevelDebug 输出 DEBUG,INFO,WARNING,ERROR 和 FATAL 级别的 Log。
TRTCLogLevelInfo 输出 INFO,WARNNING,ERROR 和 FATAL 级别的 Log。
TRTCLogLevelWarn 只输出WARNNING,ERROR 和 FATAL 级别的 Log。
TRTCLogLevelError 只输出ERROR 和 FATAL 级别的 Log。
TRTCLogLevelFatal 只输出 FATAL 级别的 Log。

TRTCDeviceState

功能

设备操作。

枚举 含义
TRTCDeviceStateAdd 添加设备。
TRTCDeviceStateRemove 移除设备。
TRTCDeviceStateActive 设备已启用。

TRTCDeviceType

功能

设备类型。

枚举 含义
TRTCDeviceTypeUnknow -
TRTCDeviceTypeMic 麦克风。
TRTCDeviceTypeSpeaker 扬声器。
TRTCDeviceTypeCamera 摄像头。

TRTCWaterMarkSrcType

功能

水印图片的源类型。

枚举 含义
TRTCWaterMarkSrcTypeFile 图片文件路径,支持 BMP、GIF、JPEG、PNG、TIFF、Exif、WMF 和 EMF 文件格式。
TRTCWaterMarkSrcTypeBGRA32 BGRA32格式内存块。
TRTCWaterMarkSrcTypeRGBA32 RGBA32格式内存块。

TRTCTranscodingConfigMode

功能

混流参数配置模式。

介绍

目前暂仅支持手动配置这一种模式,即需要指定 TRTCTranscodingConfig 的全部参数。

枚举 含义
TRTCTranscodingConfigMode_Unknown 未定义。
TRTCTranscodingConfigMode_Manual 手动配置混流参数。