LiteAVSDK
腾讯云音视频 SDK ,服务于数万家企业客户的高可用组件,致力于最大限度地节省您的研发成本。
关键类型定义

详细描述

腾讯云视频通话功能的关键类型定义


结构体说明

◆ ManageLiteAV::TRTCImageBuffer

class ManageLiteAV::TRTCImageBuffer

Public 成员函数

 TRTCImageBuffer ()
 

成员变量

byte[] buffer
 
uint length
 
uint width
 
uint height
 

构造及析构函数说明

◆ TRTCImageBuffer()

TRTCImageBuffer ( )
inline

结构体成员变量说明

◆ buffer

byte [] buffer

图内容

◆ length

uint length

图缓存大小

◆ width

uint width

图宽

◆ height

uint height

图高

◆ ManageLiteAV::TRTCScreenCaptureSourceInfo

class ManageLiteAV::TRTCScreenCaptureSourceInfo

Public 成员函数

 TRTCScreenCaptureSourceInfo ()
 

成员变量

TRTCScreenCaptureSourceType type
 
IntPtr sourceId
 
string sourceName
 
TRTCImageBuffer thumbBGRA
 
TRTCImageBuffer iconBGRA
 

构造及析构函数说明

◆ TRTCScreenCaptureSourceInfo()

结构体成员变量说明

◆ type

采集源类型

◆ sourceId

IntPtr sourceId

采集源ID;对于窗口,该字段指示窗口句柄;对于屏幕,该字段指示屏幕ID

◆ sourceName

string sourceName

采集源名称,UTF8编码

◆ thumbBGRA

TRTCImageBuffer thumbBGRA

缩略图内容

◆ iconBGRA

TRTCImageBuffer iconBGRA

图标内容

◆ ManageLiteAV::SIZE

class ManageLiteAV::SIZE
成员变量
long cx
long cy

◆ ManageLiteAV::ITRTCScreenCaptureSourceList

interface ManageLiteAV::ITRTCScreenCaptureSourceList

Public 成员函数

uint getCount ()
 
TRTCScreenCaptureSourceInfo getSourceInfo (uint index)
 
void release ()
 

成员函数说明

◆ getCount()

uint getCount ( )

返回
窗口个数

◆ getSourceInfo()

TRTCScreenCaptureSourceInfo getSourceInfo ( uint  index)

返回
窗口信息

◆ release()

void release ( )

遍历完窗口列表后,调用release释放资源。

◆ ManageLiteAV::ITRTCDeviceCollection

interface ManageLiteAV::ITRTCDeviceCollection

Public 成员函数

uint getCount ()
 
string getDeviceName (uint index)
 
string getDevicePID (uint index)
 
void release ()
 

成员函数说明

◆ getCount()

uint getCount ( )

返回
设备个数

◆ getDeviceName()

string getDeviceName ( uint  index)

返回
设备名称,字符编码格式是UTF-8

◆ getDevicePID()

string getDevicePID ( uint  index)

返回
设备PID,字符编码格式是UTF-8

◆ release()

void release ( )

遍历完设备后,调用release释放资源。

◆ ManageLiteAV::ITRTCDeviceInfo

interface ManageLiteAV::ITRTCDeviceInfo

Public 成员函数

string getDeviceName ()
 
string getDevicePID ()
 
void release ()
 

成员函数说明

◆ getDeviceName()

string getDeviceName ( )

返回
设备名称,字符编码格式是UTF-8

◆ getDevicePID()

string getDevicePID ( )

返回
设备PID,字符编码格式是UTF-8

◆ release()

void release ( )

获取完设备信息后,调用release释放资源。

◆ ManageLiteAV::TRTCParams

class ManageLiteAV::TRTCParams

Public 成员函数

 TRTCParams ()
 

成员变量

uint sdkAppId
 
string userId
 
string userSig
 
uint roomId
 
TRTCRoleType role
 
string streamId
 
string userDefineRecordId
 
string privateMapKey
 
string businessInfo
 

构造及析构函数说明

◆ TRTCParams()

TRTCParams ( )
inline

结构体成员变量说明

◆ sdkAppId

uint sdkAppId

【字段含义】应用标识 [必填],腾讯视频云基于 sdkAppId 进行计费统计。

实时音视频控制台 创建应用后可在帐号信息页面中得到该 ID。

◆ userId

string userId

【字段含义】用户标识 [必填],当前用户的 userId,相当于用户名,使用 UTF-8 编码。

【推荐取值】如果一个用户在您的帐号系统中的 ID 为“abc”,则 userId 即可设置为“abc”。

◆ userSig

string userSig

【字段含义】用户签名 [必填],当前 userId 对应的验证签名,相当于登录密码。

【推荐取值】具体计算方法请参见 如何计算UserSig

◆ roomId

uint roomId

【字段含义】房间号码 [必填],在同一个房间内的用户可以看到彼此并进行视频通话。

【推荐取值】您可以自定义设置该参数值,但不可重复。如果您的用户帐号 ID (userId)为数字类型,可直接使用创建者的用户 ID 作为 roomId。

◆ role

【字段含义】直播场景下的角色,仅适用于直播场景(TRTCAppSceneLIVE),视频通话场景下指定无效。

【推荐取值】默认值:主播(TRTCRoleAnchor)

◆ streamId

string streamId

【字段含义】绑定腾讯云直播 CDN 流 ID[非必填],设置之后,您就可以在腾讯云直播 CDN 上通过标准直播方案(FLV或HLS)播放该用户的音视频流。

【推荐取值】限制长度为64字节,可以不填写,一种推荐的方案是使用 “sdkappid_roomid_userid_main” 作为 streamid,这样比较好辨认且不会在您的多个应用中发生冲突。

【特殊说明】要使用腾讯云直播 CDN,您需要先在控制台 中的功能配置页开启“启动自动旁路直播”开关。

【参考文档】CDN 旁路直播

◆ userDefineRecordId

string userDefineRecordId

【字段含义】设置云端录制完成后的回调消息中的 "userdefinerecordid" 字段内容,便于您更方便的识别录制回调。

【推荐取值】限制长度为64字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。

【参考文档】云端录制

◆ privateMapKey

string privateMapKey

【字段含义】房间签名 [非必填],当您希望某个房间只能让特定的 userId 进入时,需要使用 privateMapKey 进行权限保护。

【推荐取值】仅建议有高级别安全需求的客户使用,更多详情请参见 进房权限保护

◆ businessInfo

string businessInfo

【字段含义】业务数据 [非必填],部分高级特性才需要使用该字段。

【推荐取值】不建议使用

◆ ManageLiteAV::TRTCVideoEncParam

class ManageLiteAV::TRTCVideoEncParam

Public 成员函数

 TRTCVideoEncParam ()
 

成员变量

TRTCVideoResolution videoResolution
 
TRTCVideoResolutionMode resMode
 
uint videoFps
 
uint videoBitrate
 
uint minVideoBitrate
 
bool enableAdjustRes
 

构造及析构函数说明

◆ TRTCVideoEncParam()

TRTCVideoEncParam ( )
inline

结构体成员变量说明

◆ videoResolution

TRTCVideoResolution videoResolution

【字段含义】 视频分辨率

【推荐取值】

- 视频通话建议选择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

【字段含义】分辨率模式(横屏分辨率 - 竖屏分辨率)

【推荐取值】手机直播建议选择 Portrait,Window 和 Mac 建议选择 Landscape。

【特别说明】如果 videoResolution 指定分辨率 640 × 360,resMode 指定模式为 Portrait,则最终编码出的分辨率为360 × 640。

◆ videoFps

uint videoFps

【字段含义】视频采集帧率

【推荐取值】15fps 或 20fps。5fps以下,卡顿感明显。10fps以下,会有轻微卡顿感。20fps以上,则过于浪费(电影的帧率为24fps)。

【特别说明】很多 Android 手机的前置摄像头并不支持15fps以上的采集帧率,部分过于突出美颜功能的 Android 手机前置摄像头的采集帧率可能低于10fps。

◆ videoBitrate

uint videoBitrate

【字段含义】目标视频码率,SDK 会按照目标码率进行编码,只有在网络不佳的情况下才会主动降低视频码率。

【推荐取值】请参考本 TRTCVideoResolution 在各档位注释的最佳码率,也可以在此基础上适当调高。

比如 TRTCVideoResolution_1280_720 对应 1200kbps 的目标码率,您也可以设置为 1500kbps 用来获得更好的清晰度观感。

【特别说明】SDK 会努力按照 videoBitrate 指定的码率进行编码,只有在网络不佳的情况下才会主动降低视频码率,最低会降至 minVideoBitrate 所设定的数值。

如果您追求“允许卡顿但要保持清晰”的效果,可以设置 minVideoBitrate 为 videoBitrate 的 60;

如果您追求“允许模糊但要保持流畅”的效果,可以设置 minVideoBitrate 为 200kbps;

如果您将 videoBitrate 和 minVideoBitrate 设置为同一个值,等价于关闭 SDK 的自适应调节能力。

◆ minVideoBitrate

uint minVideoBitrate

【字段含义】最低视频码率,SDK 会在网络不佳的情况下主动降低视频码率,最低会降至 minVideoBitrate 所设定的数值。

【推荐取值】

- 如果您追求“允许卡顿但要保持清晰”的效果,可以设置 minVideoBitrate 为 videoBitrate 的 60;

- 如果您追求“允许模糊但要保持流畅”的效果,可以设置 minVideoBitrate 为 200kbps;

- 如果您将 videoBitrate 和 minVideoBitrate 设置为同一个值,等价于关闭 SDK 的自适应调节能力;

- 默认值:0,此时最低码率由 SDK 根据分辨率情况,自动设置合适的数值。

【特别说明】

- 当您把分辨率设置的比较高时,minVideoBitrate 不适合设置的太低,否则会出现画面模糊和大范围的马赛克宏块。

比如把分辨率设置为 720p,把码率设置为 200kbps,那么编码出的画面将会出现大范围区域性马赛克。

◆ enableAdjustRes

bool enableAdjustRes

【字段含义】是否允许调整分辨率

【推荐取值】

- 手机直播建议选择 NO。

- 视频通话模式,若更关注流畅性,建议选择 YES,此时若遇到带宽有限的弱网,SDK 会自动降低分辨率以保障更好的流畅度(仅针对 TRTCVideoStreamTypeBig 生效)。

- 默认值:NO。

【特别说明】若有录制需求,选择 YES 时,请确保通话过程中,调整分辨率不会影响您的录制效果。

◆ ManageLiteAV::TRTCNetworkQosParam

class ManageLiteAV::TRTCNetworkQosParam

Public 成员函数

 TRTCNetworkQosParam ()
 

成员变量

TRTCVideoQosPreference preference
 
TRTCQosControlMode controlMode
 

构造及析构函数说明

◆ TRTCNetworkQosParam()

TRTCNetworkQosParam ( )
inline

结构体成员变量说明

◆ preference

【字段含义】弱网下是“保清晰”或“保流畅”

【特别说明】

- 弱网下保流畅:在遭遇弱网环境时,画面会变得模糊,且出现较多马赛克,但可以保持流畅不卡顿

- 弱网下保清晰:在遭遇弱网环境时,画面会尽可能保持清晰,但可能容易出现卡顿

◆ controlMode

TRTCQosControlMode controlMode

【字段含义】视频分辨率(云端控制 - 客户端控制)

【推荐取值】云端控制

【特别说明】

- Server 模式(默认):云端控制模式,若无特殊原因,请直接使用该模式

- Client 模式:客户端控制模式,用于 SDK 开发内部调试,客户请勿使用

◆ ManageLiteAV::TRTCQualityInfo

class ManageLiteAV::TRTCQualityInfo

Public 成员函数

 TRTCQualityInfo ()
 

成员变量

string userId
 
TRTCQuality quality
 

构造及析构函数说明

◆ TRTCQualityInfo()

TRTCQualityInfo ( )
inline

结构体成员变量说明

◆ userId

string userId

用户标识

◆ quality

TRTCQuality quality

视频质量

◆ ManageLiteAV::TRTCVolumeInfo

class ManageLiteAV::TRTCVolumeInfo

Public 成员函数

 TRTCVolumeInfo ()
 

成员变量

string userId
 
uint volume
 

构造及析构函数说明

◆ TRTCVolumeInfo()

TRTCVolumeInfo ( )
inline

结构体成员变量说明

◆ userId

string userId

说话者的 userId,字符编码格式为 UTF-8

◆ volume

uint volume

说话者的音量, 取值范围0 - 100

◆ ManageLiteAV::TRTCVideoFrame

class ManageLiteAV::TRTCVideoFrame

Public 成员函数

 TRTCVideoFrame ()
 

成员变量

TRTCVideoPixelFormat videoFormat
 
TRTCVideoBufferType bufferType
 
byte[] data
 
int textureId
 
uint length
 
uint width
 
uint height
 
ulong timestamp
 
TRTCVideoRotation rotation
 

构造及析构函数说明

◆ TRTCVideoFrame()

TRTCVideoFrame ( )
inline

结构体成员变量说明

◆ videoFormat

TRTCVideoPixelFormat videoFormat

视频帧的格式

◆ bufferType

TRTCVideoBufferType bufferType

视频数据结构类型

◆ data

byte [] data

视频数据,字段bufferType是LiteAVVideoBufferType_Buffer时生效

◆ textureId

int textureId

视频纹理ID,字段bufferType是LiteAVVideoBufferType_Texture时生效

◆ length

uint length

视频数据的长度,单位是字节,对于i420而言, length = width * height * 3 / 2,对于BGRA32而言, length = width * height * 4

◆ width

uint width

画面的宽度

◆ height

uint height

画面的高度

◆ timestamp

ulong timestamp

时间戳,单位ms

◆ rotation

画面旋转角度

◆ ManageLiteAV::TRTCAudioFrame

class ManageLiteAV::TRTCAudioFrame

Public 成员函数

 TRTCAudioFrame ()
 

成员变量

TRTCAudioFrameFormat audioFormat
 
byte[] data
 
uint length
 
uint sampleRate
 
uint channel
 
ulong timestamp
 

构造及析构函数说明

◆ TRTCAudioFrame()

TRTCAudioFrame ( )
inline

结构体成员变量说明

◆ audioFormat

TRTCAudioFrameFormat audioFormat

音频帧的格式

◆ data

byte [] data

音频数据

◆ length

uint length

音频数据的长度

◆ sampleRate

uint sampleRate

采样率

◆ channel

uint channel

声道数

◆ timestamp

ulong timestamp

时间戳,单位ms

◆ ManageLiteAV::TRTCSpeedTestResult

class ManageLiteAV::TRTCSpeedTestResult

Public 成员函数

 TRTCSpeedTestResult ()
 

成员变量

string ip
 
TRTCQuality quality
 
float upLostRate
 
float downLostRate
 
int rtt
 

构造及析构函数说明

◆ TRTCSpeedTestResult()

TRTCSpeedTestResult ( )
inline

结构体成员变量说明

◆ ip

string ip

服务器 IP 地址

◆ quality

TRTCQuality quality

网络质量,内部通过评估算法测算出的网络质量,loss 越低,rtt 越小,得分便越高

◆ upLostRate

float upLostRate

上行丢包率,范围是0 - 1.0,例如,0.3表示每向服务器发送10个数据包可能会在中途丢失3个。

◆ downLostRate

float downLostRate

下行丢包率,范围是0 - 1.0,例如,0.2表示每从服务器收取10个数据包可能会在中途丢失2个。

◆ rtt

int rtt

延迟(毫秒),指当前设备到腾讯云服务器的一次网络往返时间,该值越小越好,正常数值范围是10ms - 100ms

◆ ManageLiteAV::RECT

class ManageLiteAV::RECT
成员变量
int left 左坐标点
int top 上坐标点
int right 右坐标点
int bottom 下坐标点

◆ ManageLiteAV::TRTCMixUser

class ManageLiteAV::TRTCMixUser

Public 成员函数

 TRTCMixUser ()
 

成员变量

string userId
 
string roomId
 
RECT rect
 
int zOrder
 
bool pureAudio
 
TRTCVideoStreamType streamType
 

构造及析构函数说明

◆ TRTCMixUser()

TRTCMixUser ( )
inline

结构体成员变量说明

◆ userId

string userId

参与混流的 userId

◆ roomId

string roomId

参与混流的 roomId,跨房流传入的实际 roomId,当前房间流传入 roomId = NULL

◆ rect

RECT rect

图层位置坐标以及大小,左上角为坐标原点(0,0) (绝对像素值)

◆ zOrder

int zOrder

图层层次(1 - 15)不可重复

◆ pureAudio

bool pureAudio

是否纯音频

◆ streamType

TRTCVideoStreamType streamType

参与混合的是主路画面(TRTCVideoStreamTypeBig)或屏幕分享(TRTCVideoStreamTypeSub)画面

◆ ManageLiteAV::TRTCTranscodingConfig

class ManageLiteAV::TRTCTranscodingConfig

Public 成员函数

 TRTCTranscodingConfig ()
 

成员变量

TRTCTranscodingConfigMode mode
 
uint appId
 
uint bizId
 
uint videoWidth
 
uint videoHeight
 
uint videoBitrate
 
uint videoFramerate
 
uint videoGOP
 
uint32_t backgroundColor
 
uint audioSampleRate
 
uint audioBitrate
 
uint audioChannels
 
TRTCMixUser[] mixUsersArray
 
uint mixUsersArraySize
 

构造及析构函数说明

◆ TRTCTranscodingConfig()

结构体成员变量说明

◆ mode

【字段含义】转码 config 模式

◆ appId

uint appId

【字段含义】腾讯云直播 AppID

【推荐取值】请在 实时音视频控制台 选择已经创建的应用,单击【帐号信息】后,在“直播信息”中获取

◆ bizId

uint bizId

【字段含义】腾讯云直播 bizid

【推荐取值】请在 实时音视频控制台 选择已经创建的应用,单击【帐号信息】后,在“直播信息”中获取

◆ videoWidth

uint videoWidth

【字段含义】最终转码后的视频分辨率的宽度(px)

【推荐取值】推荐值:360px ,如果你是纯音频推流,请将 width × height 设为 0px × 0px,否则混流后会携带一条画布背景的视频流。

◆ videoHeight

uint videoHeight

【字段含义】最终转码后的视频分辨率的高度(px)

【推荐取值】推荐值:640px ,如果你是纯音频推流,请将 width × height 设为 0px × 0px,否则混流后会携带一条画布背景的视频流。

◆ videoBitrate

uint videoBitrate

【字段含义】最终转码后的视频分辨率的码率(kbps)

【推荐取值】如果填0,后台会根据videoWidth和videoHeight来估算码率,您也可以参考枚举定义TRTCVideoResolution_640_480的注释。

◆ videoFramerate

uint videoFramerate

【字段含义】最终转码后的视频分辨率的帧率(FPS)

【推荐取值】默认值:15fps,取值范围是 (0,30]。

◆ videoGOP

uint videoGOP

【字段含义】最终转码后的视频分辨率的关键帧间隔(又称为 GOP),单位秒

【推荐取值】默认值:2,单位为秒,取值范围是 [1,8]。

◆ backgroundColor

uint32_t backgroundColor

【字段含义】混流背景颜色,格式为 0xRRGGBB。

【推荐取值】默认值:0x000000,黑色。

◆ audioSampleRate

uint audioSampleRate

【字段含义】最终转码后的音频采样率。

【推荐取值】默认值:48000Hz。支持12000HZ、16000HZ、22050HZ、24000HZ、32000HZ、44100HZ、48000HZ。

◆ audioBitrate

uint audioBitrate

【字段含义】最终转码后的音频码率。

【推荐取值】默认值:64kbps,取值范围是 [32,192]。

◆ audioChannels

uint audioChannels

【字段含义】最终转码后的音频声道数

【推荐取值】默认值:1。取值范围为 [1,2] 中的整型。

◆ mixUsersArray

TRTCMixUser [] mixUsersArray

【字段含义】每一路子画面的位置信息

◆ mixUsersArraySize

uint mixUsersArraySize

【字段含义】 数组 mixUsersArray 的大小

◆ ManageLiteAV::TRTCPublishCDNParam

class ManageLiteAV::TRTCPublishCDNParam

Public 成员函数

 TRTCPublishCDNParam ()
 

成员变量

uint appId
 
uint bizId
 
string url
 

构造及析构函数说明

◆ TRTCPublishCDNParam()

TRTCPublishCDNParam ( )
inline

结构体成员变量说明

◆ appId

uint appId

腾讯云 AppID,请在 实时音视频控制台 选择已经创建的应用,单击【帐号信息】,在“直播信息”中获取

◆ bizId

uint bizId

腾讯云直播 bizid,请在 实时音视频控制台 选择已经创建的应用,单击【帐号信息】,在“直播信息”中获取

◆ url

string url

旁路转推的 URL

◆ ManageLiteAV::TRTCAudioRecordingParams

class ManageLiteAV::TRTCAudioRecordingParams

Public 成员函数

 TRTCAudioRecordingParams ()
 

成员变量

string filePath
 

构造及析构函数说明

◆ TRTCAudioRecordingParams()

结构体成员变量说明

◆ filePath

string filePath

【字段含义】文件路径(必填),录音文件的保存路径。该路径需要用户自行指定,请确保路径存在且可写。 【特别说明】该路径需精确到文件名及格式后缀,格式后缀决定录音文件的格式,目前支持的格式有 PCM、WAV 和 AAC。 例如,指定路径为 path/to/audio.aac,则会生成一个 AAC 格式的文件。 请指定一个有读写权限的合法路径,否则录音文件无法生成。

◆ ManageLiteAV::TRTCAudioEffectParam

class ManageLiteAV::TRTCAudioEffectParam

Public 成员函数

 TRTCAudioEffectParam (const int _effectId, string _path)
 

成员变量

int effectId
 
string path
 
int loopCount
 
bool publish
 
int volume
 

构造及析构函数说明

◆ TRTCAudioEffectParam()

TRTCAudioEffectParam ( const int  _effectId,
string  _path 
)
inline

结构体成员变量说明

◆ effectId

int effectId

【字段含义】音效 ID 【特别说明】SDK 允许播放多路音效,因此需要音效 ID 进行标记,用于控制音效的开始、停止、音量等

◆ path

string path

【字段含义】音效路径

◆ loopCount

int loopCount

【字段含义】循环播放次数 【推荐取值】取值范围为0 - 任意正整数,默认值:0。0表示播放音效一次;1表示播放音效两次;以此类推

◆ publish

bool publish

【字段含义】音效是否上行 【推荐取值】YES:音效在本地播放的同时,会上行至云端,因此远端用户也能听到该音效;NO:音效不会上行

◆ volume

int volume

【字段含义】音效音量 【推荐取值】取值范围为0 - 100;默认值:100

◆ ManageLiteAV::TRTCLocalStatistics

class ManageLiteAV::TRTCLocalStatistics
成员变量
uint width 视频宽度
uint height 视频高度
uint frameRate 帧率(fps)
uint videoBitrate 视频发送码率(Kbps)
uint audioSampleRate 音频采样率(Hz)
uint audioBitrate 音频发送码率(Kbps)
TRTCVideoStreamType streamType 流类型(大画面 | 小画面 | 辅路画面)

◆ ManageLiteAV::TRTCRemoteStatistics

class ManageLiteAV::TRTCRemoteStatistics
成员变量
string userId 用户 ID,指定是哪个用户的视频流
uint finalLoss 该线路的总丢包率(%)

这个值越小越好,例如,丢包率为0表示网络很好。

丢包率是该线路的 userId 从上行到服务器再到下行的总丢包率。

如果 downLoss 为0,但是 finalLoss 不为0,说明该 userId 上行时出现了无法恢复的丢包。

uint width 视频宽度
uint height 视频高度
uint frameRate 接收帧率(fps)
uint videoBitrate 视频码率(Kbps)
uint audioSampleRate 音频采样率(Hz)
uint audioBitrate 音频码率(Kbps)
TRTCVideoStreamType streamType 流类型(大画面 | 小画面 | 辅路画面)

◆ ManageLiteAV::TRTCStatistics

class ManageLiteAV::TRTCStatistics
成员变量
uint upLoss C -> S 上行丢包率(%),

该值越小越好,例如,丢包率为0表示网络很好, 丢包率为30%则意味着 SDK 向服务器发送的数据包中会有30%丢失在上行传输中。

uint downLoss S -> C 下行丢包率(%), 该值越小越好,例如,丢包率为0表示网络很好, 丢包率为30%则意味着 SDK 向服务器发送的数据包中会有30%丢失在下行传输中。
uint appCpu 当前 App 的 CPU 使用率(%)
uint systemCpu 当前系统的 CPU 使用率(%)
uint rtt 延迟(毫秒),指 SDK 到腾讯云服务器的一次网络往返时间,该值越小越好。

一般低于50ms的 rtt 相对理想,而高于100ms的 rtt 会引入较大的通话延时。

由于数据上下行共享一条网络连接,所以 local 和 remote 的 rtt 相同。

uint receivedBytes 总接收字节数(包含信令和音视频)
uint sentBytes 总发送字节总数(包含信令和音视频)
TRTCLocalStatistics[] localStatisticsArray 本地的音视频统计信息,可能有主画面、小画面以及辅路画面等多路的情况,因此是一个数组
uint localStatisticsArraySize 数组 localStatisticsArray 的大小
TRTCRemoteStatistics[] remoteStatisticsArray 远端成员的音视频统计信息,可能有主画面、小画面以及辅路画面等多路的情况,因此是一个数组
uint remoteStatisticsArraySize 数组 remoteStatisticsArray 的大小

枚举类型说明

◆ TRTCVideoResolution

enum TRTCVideoResolution
strong

视频分辨率

此处仅定义横屏分辨率,如需使用竖屏分辨率(例如360 × 640),需要同时指定 TRTCVideoResolutionMode 为 Portrait。

枚举值
TRTCVideoResolution_120_120 

建议码率80kbps

TRTCVideoResolution_160_160 

建议码率100kbps

TRTCVideoResolution_270_270 

建议码率200kbps

TRTCVideoResolution_480_480 

建议码率350kbps

TRTCVideoResolution_160_120 

建议码率100kbps

TRTCVideoResolution_240_180 

建议码率150kbps

TRTCVideoResolution_280_210 

建议码率200kbps

TRTCVideoResolution_320_240 

建议码率250kbps

TRTCVideoResolution_400_300 

建议码率300kbps

TRTCVideoResolution_480_360 

建议码率400kbps

TRTCVideoResolution_640_480 

建议码率600kbps

TRTCVideoResolution_960_720 

建议码率1000kbps

TRTCVideoResolution_160_90 

建议码率150kbps

TRTCVideoResolution_256_144 

建议码率200kbps

TRTCVideoResolution_320_180 

建议码率250kbps

TRTCVideoResolution_480_270 

建议码率350kbps

TRTCVideoResolution_640_360 

建议码率550kbps

TRTCVideoResolution_960_540 

建议码率850kbps

TRTCVideoResolution_1280_720 

摄像头采集 - 建议码率1200kbps

屏幕分享 - 建议码率 低清:1000kbps 高清:1600kbps

TRTCVideoResolution_1920_1080 

屏幕分享 - 建议码率2000kbps

◆ TRTCVideoResolutionMode

视频分辨率模式

- 横屏分辨率:TRTCVideoResolution_640_360 + TRTCVideoResolutionModeLandscape = 640 × 360

- 竖屏分辨率:TRTCVideoResolution_640_360 + TRTCVideoResolutionModePortrait = 360 × 640

枚举值
TRTCVideoResolutionModeLandscape 

横屏分辨率

TRTCVideoResolutionModePortrait 

竖屏分辨率

◆ TRTCVideoStreamType

enum TRTCVideoStreamType
strong

视频流类型

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

-主画面:最常用的一条线路,一般用来传输摄像头的视频数据。

-小画面:跟主画面的内容相同,但是分辨率和码率更低。

-辅流画面:一般用于屏幕分享或远程播片(例如老师播放视频给学生观看)。

  • 如果主播的上行网络和性能比较好,则可以同时送出大小两路画面。

- SDK 不支持单独开启小画面,小画面必须依附于主画面而存在。

枚举值
TRTCVideoStreamTypeBig 

主画面视频流

TRTCVideoStreamTypeSmall 

小画面视频流

TRTCVideoStreamTypeSub 

辅流(屏幕分享)

◆ TRTCQuality

enum TRTCQuality
strong

画质级别

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

枚举值
TRTCQuality_Unknown 

未定义

TRTCQuality_Excellent 

最好

TRTCQuality_Good 

TRTCQuality_Poor 

一般

TRTCQuality_Bad 

TRTCQuality_Vbad 

很差

TRTCQuality_Down 

不可用

◆ TRTCVideoFillMode

enum TRTCVideoFillMode
strong

视频画面填充模式

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

- TRTCVideoFillMode_Fill,超出显示视窗的视频部分将被裁剪,画面显示可能不完整。

- TRTCVideoFillMode_Fit,图像长边填满屏幕,短边区域会被填充黑色,但画面的内容肯定是完整的。

枚举值
TRTCVideoFillMode_Fill 

图像铺满屏幕,超出显示视窗的视频部分将被裁剪

TRTCVideoFillMode_Fit 

图像长边填满屏幕,短边区域会被填充黑色

◆ TRTCVideoRotation

enum TRTCVideoRotation
strong

视频画面旋转方向

TRTC SDK 提供了对本地和远程画面的旋转角度设置 API,下列的旋转角度都是指顺时针方向的。

枚举值
TRTCVideoRotation0 

顺时针旋转0度

TRTCVideoRotation90 

顺时针旋转90度

TRTCVideoRotation180 

顺时针旋转180度

TRTCVideoRotation270 

顺时针旋转270度

◆ TRTCBeautyStyle

enum TRTCBeautyStyle
strong

美颜(磨皮)算法

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

枚举值
TRTCBeautyStyleSmooth 

光滑,适用于美女秀场,效果比较明显。

TRTCBeautyStyleNature 

自然,磨皮算法更多地保留了面部细节,主观感受上会更加自然。

◆ TRTCVideoPixelFormat

enum TRTCVideoPixelFormat
strong

视频像素格式

TRTC SDK 提供针对视频的自定义采集和自定义渲染功能,在自定义采集功能中,您可以用下列枚举值描述您采集的视频像素格式。

在自定义渲染功能中,您可以指定您期望 SDK 回调的视频像素格式。

枚举值
TRTCVideoPixelFormat_Unknown 
TRTCVideoPixelFormat_I420 

I420

TRTCVideoPixelFormat_Texture_2D 

OpenGL 2D 纹理

TRTCVideoPixelFormat_BGRA32 

BGRA32

◆ TRTCVideoBufferType

enum TRTCVideoBufferType
strong

视频数据包装格式

枚举值
TRTCVideoBufferType_Unknown 
TRTCVideoBufferType_Buffer 

二进制Buffer类型

TRTCVideoBufferType_Texture 

纹理类型

◆ TRTCAppScene

enum TRTCAppScene
strong

应用场景

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

- TRTCAppSceneVideoCall :视频通话场景,适合[1对1视频通话]、[300人视频会议]、[在线问诊]、[视频聊天]、[远程面试]等。

- TRTCAppSceneLIVE :视频互动直播,适合[视频低延时直播]、[十万人互动课堂]、[视频直播 PK]、[视频相亲房]、[互动课堂]、[远程培训]、[超大型会议]等。

- TRTCAppSceneAudioCall :语音通话场景,适合[1对1语音通话]、[300人语音会议]、[语音聊天]、[语音会议]、[在线狼人杀]等。

- TRTCAppSceneVoiceChatRoom:语音互动直播,适合:[语音低延时直播]、[语音直播连麦]、[语聊房]、[K 歌房]、[FM 电台]等。

枚举值
TRTCAppSceneVideoCall 

视频通话场景,支持720P、1080P高清画质,单个房间最多支持300人同时在线,最高支持50人同时发言。

适合:[1对1视频通话]、[300人视频会议]、[在线问诊]、[视频聊天]、[远程面试]等。

TRTCAppSceneLIVE 

视频互动直播,支持平滑上下麦,切换过程无需等待,主播延时小于300ms;支持十万级别观众同时播放,播放延时低至1000ms。

适合:[视频低延时直播]、[十万人互动课堂]、[视频直播 PK]、[视频相亲房]、[互动课堂]、[远程培训]、[超大型会议]等。<para>

注意:此场景下,您必须通过 TRTCParams 中的 role 字段指定当前用户的角色。<para>

TRTCAppSceneAudioCall 

语音通话场景,支持 48kHz,支持双声道。单个房间最多支持300人同时在线,最高支持50人同时发言。

适合:[1对1语音通话]、[300人语音会议]、[语音聊天]、[语音会议]、[在线狼人杀]等。

TRTCAppSceneVoiceChatRoom 

语音互动直播,支持平滑上下麦,切换过程无需等待,主播延时小于300ms;支持十万级别观众同时播放,播放延时低至1000ms。

适合:[语音低延时直播]、[语音直播连麦]、[语聊房]、[K 歌房]、[FM 电台]等。

注意:此场景下,您必须通过 TRTCParams 中的 role 字段指定当前用户的角色。

◆ TRTCRoleType

enum TRTCRoleType
strong

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

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

- Anchor:主播,可以上行视频和音频,一个房间里最多支持50个主播同时上行音视频。

- Audience:观众,只能观看,不能上行视频和音频,一个房间里的观众人数没有上限。

枚举值
TRTCRoleAnchor 

主播

TRTCRoleAudience 

观众

◆ TRTCQosControlMode

enum TRTCQosControlMode
strong

流控模式

TRTC SDK 内部需要时刻根据网络情况调整内部的编解码器和网络模块,以便能够对网络的变化做出反应。

为了支持快速算法升级,SDK 内部设置了两种不同的流控模式:

- ModeServer: 云端控制,默认模式,推荐选择。

- ModeClient: 本地控制,用于 SDK 开发内部调试,客户请勿使用。

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

枚举值
TRTCQosControlModeClient 

客户端控制(用于 SDK 开发内部调试,客户请勿使用)

TRTCQosControlModeServer 

云端控制 (默认)

◆ TRTCVideoQosPreference

画质偏好

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

- Smooth:弱网下保流畅。即在遭遇弱网环境时首先确保声音的流畅和优先发送,画面会变得模糊且会有较多马赛克,但可以保持流畅不卡顿。

- Clear:弱网下保清晰。即在遭遇弱网环境时,画面会尽可能保持清晰,但可能会更容易出现卡顿。

枚举值
TRTCVideoQosPreferenceSmooth 

弱网下保流畅

TRTCVideoQosPreferenceClear 

弱网下保清晰

◆ TRTCAudioSampleRate

enum TRTCAudioSampleRate
strong

音频采样率

音频采样率用来衡量声音的保真程度,采样率越高保真程度越好,如果您的应用场景有音乐的存在,推荐使用 TRTCAudioSampleRate48000。

枚举值
TRTCAudioSampleRate16000 

16k采样率

TRTCAudioSampleRate32000 

32采样率

summary> k采样率 /summary>

TRTCAudioSampleRate44100 

summary> 48k采样率 /summary>

TRTCAudioSampleRate48000 

◆ TRTCAudioQuality

enum TRTCAudioQuality
strong

声音音质

音频音质用来衡量声音的保真程度,TRTCAudioQualitySpeech 适用于通话场景,TRTCAudioQualityMusic 适用于高音质音乐场景。

枚举值
TRTCAudioQualitySpeech 

summary> 流畅音质:采样率:16k;单声道;音频裸码率:16kbps;适合语音通话为主的场景,比如在线会议,语音通话。 /summary> summary> 默认音质:采样率:48k;单声道;音频裸码率:50kbps;SDK 默认的音频质量,如无特殊需求推荐选择之。 /summary>

TRTCAudioQualityDefault 

summary> 高音质:采样率:48k;双声道 + 全频带;音频裸码率:128kbps;适合需要高保真传输音乐的场景,比如K歌、音乐直播等。 /summary>

TRTCAudioQualityMusic 

◆ TRTCAudioFrameFormat

enum TRTCAudioFrameFormat
strong

音频帧的格式

枚举值
TRTCAudioFrameFormatNone 
TRTCAudioFrameFormatPCM 

PCM,每个采样点占16bit数据量。

◆ TRTCScreenCaptureSourceType

屏幕分享目标信息

您可以通过 getScreenCaptureSources() 枚举可共享的窗口列表,列表通过 ITRTCScreenCaptureSourceList 返回

枚举值
TRTCScreenCaptureSourceTypeUnknown 
TRTCScreenCaptureSourceTypeWindow 

该分享目标是某一个Windows窗口

TRTCScreenCaptureSourceTypeScreen 

该分享目标是整个Windows桌面

TRTCAVScreenCaptureSourceTypeCustom 

◆ TRTCLogLevel

enum TRTCLogLevel
strong

Log 级别

枚举值
TRTCLogLevelVerbose 

输出所有级别的 Log

TRTCLogLevelDebug 

输出 DEBUG,INFO,WARNING,ERROR 和 FATAL 级别的 Log

TRTCLogLevelInfo 

输出 INFO,WARNING,ERROR 和 FATAL 级别的 Log

TRTCLogLevelWarn 

只输出 WARNING,ERROR 和 FATAL 级别的 Log

TRTCLogLevelError 

只输出ERROR 和 FATAL 级别的 Log

TRTCLogLevelFatal 

只输出 FATAL 级别的 Log

TRTCLogLevelNone 

不输出任何 SDK Log

◆ TRTCDeviceState

enum TRTCDeviceState
strong

设备操作

枚举值
TRTCDeviceStateAdd 

添加设备

TRTCDeviceStateRemove 

移除设备

TRTCDeviceStateActive 

设备已启用

◆ TRTCDeviceType

enum TRTCDeviceType
strong

设备类型

枚举值
TRTCDeviceTypeUnknow 

设备已启用

TRTCDeviceTypeMic 

麦克风

TRTCDeviceTypeSpeaker 

扬声器

TRTCDeviceTypeCamera 

摄像头

◆ TRTCWaterMarkSrcType

enum TRTCWaterMarkSrcType
strong

水印图片的源类型

枚举值
TRTCWaterMarkSrcTypeFile 

图片文件路径,支持 BMP、GIF、JPEG、PNG、TIFF、Exif、WMF 和 EMF 文件格式

TRTCWaterMarkSrcTypeBGRA32 

BGRA32格式内存块

TRTCWaterMarkSrcTypeRGBA32 

RGBA32格式内存块

◆ TRTCTranscodingConfigMode

混流参数配置模式

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

枚举值
TRTCTranscodingConfigMode_Unknown 

非法值

TRTCTranscodingConfigMode_Manual 

全手动模式,灵活性最高,可以自由组合出各种混流方案,但易用性最差。

此模式下,您需要填写 TRTCTranscodingConfig 中的所有参数,并需要监听 TRTCCloudDelegate 中的 onUserVideoAvailable() 和 onUserAudioAvailable() 回调,

以便根据当前房间中各个上麦用户的音视频状态不断地调整 mixUsers 参数,否则会导致混流失败。

TRTCTranscodingConfigMode_Template_PureAudio 

纯音频模式,适用于语音通话(AudioCall)和语音聊天室(VoiceChatRoom)等纯音频场景。

只需要在进房后通过 setMixTranscodingConfig() 接口设置一次,之后 SDK 就会自动把房间内所有上麦用户的声音混流到当前用户的直播流上。

此模式下,您无需设置 TRTCTranscodingConfig 中的 mixUsers 参数,只需设置 audioSampleRate、audioBitrate 和 audioChannels 等参数。

TRTCTranscodingConfigMode_Template_PresetLayout 

预排版模式,通过占位符提前对各路画面进行排布

此模式下,您依然需要设置 mixUsers 参数,但可以将 userId 设置为占位符,可选的占位符有:

- "$PLACE_HOLDER_REMOTE$" : 指代远程用户的画面,可以设置多个。

- "$PLACE_HOLDER_LOCAL_MAIN$" : 指代本地摄像头画面,只允许设置一个。

- "$PLACE_HOLDER_LOCAL_SUB$" : 指代本地屏幕分享画面,只允许设置一个。

但是您可以不需要监听 TRTCCloudDelegate 中的 onUserVideoAvailable() 和 onUserAudioAvailable() 回调进行实时调整,

只需要在进房成功后调用一次 setMixTranscodingConfig() 即可,之后 SDK 会自动将真实的 userId 补位到您设置的占位符上。

TRTCTranscodingConfigMode_Template_ScreenSharing 

屏幕分享模式,适用于在线教育场景等以屏幕分享为主的应用场景,仅支持 Windows 和 Mac 两个平台的 SDK。

SDK 会先根据您(通过 videoWidth 和 videoHeight 参数)设置的目标分辨率构建一张画布,

当老师未开启屏幕分享时,SDK 会将摄像头画面等比例拉伸绘制到该画布上;当老师开启屏幕分享之后,SDK 会将屏幕分享画面绘制到同样的画布上。

这样操作的目的是为了确保混流模块的输出分辨率一致,避免课程回放和网页观看的花屏问题(网页播放器不支持可变分辨率)。

由于教学模式下的视频内容以屏幕分享为主,因此同时传输摄像头画面和屏幕分享画面是非常浪费带宽的。

推荐的做法是直接将摄像头画面通过 setLocalVideoRenderCallback 接口自定义绘制到当前屏幕上。

在该模式下,您无需设置 TRTCTranscodingConfig 中的 mixUsers 参数,SDK 不会混合学生的画面,以免干扰屏幕分享的效果。

您可以将 TRTCTranscodingConfig 中的 width × height 设为 0px × 0px,SDK 会自动根据用户当前屏幕的宽高比计算出一个合适的分辨率:

- 如果老师当前屏幕宽度 <= 1920px,SDK 会使用老师当前屏幕的实际分辨率。

- 如果老师当前屏幕宽度 > 1920px,SDK 会根据当前屏幕宽高比,选择 1920x1080(16:9)、1920x1200(16:10)、1920x1440(4:3) 三种分辨率中的一种。