腾讯云实时音视频的关键类型定义
Module: TRTC 关键类型定义 Function: 分辨率、质量等级等枚举和常量值的定义
struct liteav::TRTCParams |
Public 成员函数 | |
TRTCParams () | |
成员变量 | |
uint32_t | sdkAppId |
const char * | userId |
const char * | userSig |
uint32_t | roomId |
const char * | strRoomId |
TRTCRoleType | role |
const char * | streamId |
const char * | userDefineRecordId |
const char * | privateMapKey |
const char * | businessInfo |
|
inline |
const char* businessInfo |
【字段含义】业务数据字段(选填),部分高级特性才需要用到此字段。
【推荐取值】请不要自行设置该字段。
const char* privateMapKey |
【字段含义】用于权限控制的权限票据(选填),当您希望某个房间只能让特定的 userId 进入时,需要使用 privateMapKey 进行权限保护。
【推荐取值】仅建议有高级别安全需求的客户使用,更多详情请参见 进房权限保护。
TRTCRoleType role |
【字段含义】直播场景下的角色,仅适用于直播场景(TRTCAppSceneLIVE 和TRTCAppSceneVoiceChatRoom),通话场景下指定该参数是无效的。
【推荐取值】默认值:主播(TRTCRoleAnchor)。
uint32_t roomId |
【字段含义】数字房间号,在同一个房间里的用户(userId)可以彼此看到对方并进行音视频通话。
【推荐取值】取值范围:1 - 4294967294。
【特别说明】roomId 与 strRoomId 是互斥的,若您选用 strRoomId,则 roomId 需要填写为0。若两者都填,SDK 将优先选用 roomId。
【请您注意】不要混用 roomId 和 strRoomId,因为它们之间是不互通的,比如数字 123 和字符串 “123” 在 TRTC 看来是两个完全不同的房间。
uint32_t sdkAppId |
【字段含义】应用标识(必填),腾讯云基于 sdkAppId 完成计费统计。
【推荐取值】在 实时音视频控制台 创建应用后可以在账号信息页面中得到该 ID。
const char* streamId |
const char* strRoomId |
【字段含义】字符串房间号,在同一个房间里的用户(userId)可以彼此看到对方并进行音视频通话。
【特别说明】roomId 与 strRoomId 是互斥的,若您选用 strRoomId,则 roomId 需要填写为0。若两者都填,SDK 将优先选用 roomId。
【请您注意】不要混用 roomId 和 strRoomId,因为它们之间是不互通的,比如数字 123 和字符串 “123” 在 TRTC 看来是两个完全不同的房间。
【推荐取值】限制长度为64字节。以下为支持的字符集范围(共 89 个字符):
const char* userDefineRecordId |
【字段含义】云端录制开关(选填),用于指定是否要在云端将该用户的音视频流录制下来。
【参考文档】云端录制。
【推荐取值】限制长度为64字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
方案一:手动录制方案:
方案二:自动录制方案:
const char* userId |
【字段含义】用户标识(必填),当前用户的 userId,相当于用户名,使用 UTF-8 编码。
【推荐取值】如果一个用户在您的帐号系统中的 ID 为“mike”,则 userId 即可设置为“mike”。
const char* userSig |
【字段含义】用户签名(必填),当前 userId 对应的验证签名,相当于使用云服务的登录密码。
【推荐取值】具体计算方法请参见 如何计算UserSig。
struct liteav::TRTCVideoEncParam |
Public 成员函数 | |
TRTCVideoEncParam () | |
成员变量 | |
TRTCVideoResolution | videoResolution |
TRTCVideoResolutionMode | resMode |
uint32_t | videoFps |
uint32_t | videoBitrate |
uint32_t | minVideoBitrate |
bool | enableAdjustRes |
|
inline |
bool enableAdjustRes |
【字段含义】是否允许动态调整分辨率(开启后会对云端录制产生影响)。
【推荐取值】该功能适用于不需要云端录制的场景,开启后 SDK 会根据当前网络情况,智能选择出一个合适的分辨率,避免出现“大分辨率+小码率”的低效编码模式。
【特别说明】默认值:关闭。如有云端录制的需求,请不要开启此功能,因为如果视频分辨率发生变化后,云端录制出的 MP4 在普通的播放器上无法正常播放。
uint32_t minVideoBitrate |
【字段含义】最低视频码率,SDK 会在网络不佳的情况下主动降低视频码率以保持流畅度,最低会降至 minVideoBitrate 所设定的数值。
【特别说明】 默认值:0,此时最低码率由 SDK 会根据您指定的分辨率,自动计算出合适的数值。
【推荐取值】您可以通过同时设置 videoBitrate 和 minVideoBitrate 两个参数,用于约束 SDK 对视频码率的调整范围:
TRTCVideoResolutionMode resMode |
【字段含义】分辨率模式(横屏分辨率 or 竖屏分辨率)
【推荐取值】手机平台(iOS、Android)建议选择 Portrait,桌面平台(Windows、Mac)建议选择 Landscape。
【特别说明】如需使用竖屏分辨率,请指定 resMode 为 Portrait,例如: 640 × 360 + Portrait = 360 × 640。
uint32_t videoBitrate |
【字段含义】目标视频码率,SDK 会按照目标码率进行编码,只有在弱网络环境下才会主动降低视频码率。
【推荐取值】请参考本 TRTCVideoResolution 在各档位注释的最佳码率,也可以在此基础上适当调高。 比如:TRTCVideoResolution_1280_720 对应 1200kbps 的目标码率,您也可以设置为 1500kbps 用来获得更好的观感清晰度。
【特别说明】您可以通过同时设置 videoBitrate 和 minVideoBitrate 两个参数,用于约束 SDK 对视频码率的调整范围:
uint32_t videoFps |
【字段含义】视频采集帧率
【推荐取值】15fps或20fps。5fps以下,卡顿感明显。10fps以下,会有轻微卡顿感。20fps以上,会浪费带宽(电影的帧率为24fps)。
【特别说明】部分 Android 手机的前置摄像头并不支持15fps以上的采集帧率,部分主打美颜功能的 Android 手机的前置摄像头的采集帧率可能低于10fps。
TRTCVideoResolution videoResolution |
【字段含义】 视频分辨率
【特别说明】如需使用竖屏分辨率,请指定 resMode 为 Portrait,例如: 640 × 360 + Portrait = 360 × 640。
【推荐取值】
struct liteav::TRTCNetworkQosParam |
Public 成员函数 | |
TRTCNetworkQosParam () | |
成员变量 | |
TRTCVideoQosPreference | preference |
TRTCQosControlMode | controlMode |
|
inline |
TRTCQosControlMode controlMode |
【字段含义】流控模式(已废弃)
【推荐取值】云端控制
【特别说明】请设置为云端控制模式(TRTCQosControlModeServer)
TRTCVideoQosPreference preference |
【字段含义】清晰优先还是流畅优先
【推荐取值】清晰优先
【特别说明】该参数主要影响 TRTC 在较差网络环境下的音视频表现:
struct liteav::TRTCRenderParams |
Public 成员函数 | |
TRTCRenderParams () | |
成员变量 | |
TRTCVideoRotation | rotation |
TRTCVideoFillMode | fillMode |
TRTCVideoMirrorType | mirrorType |
|
inline |
TRTCVideoFillMode fillMode |
【字段含义】画面填充模式
【推荐取值】填充(画面可能会被拉伸裁剪)或适应(画面可能会有黑边),默认值:TRTCVideoFillMode_Fill
TRTCVideoMirrorType mirrorType |
【字段含义】画面镜像模式
【推荐取值】默认值:TRTCVideoMirrorType_Auto
TRTCVideoRotation rotation |
【字段含义】图像的顺时针旋转角度
【推荐取值】支持90、180以及270旋转角度,默认值:TRTCVideoRotation_0
struct liteav::TRTCQualityInfo |
Public 成员函数 | |
TRTCQualityInfo () | |
成员变量 | |
const char * | userId |
TRTCQuality | quality |
|
inline |
TRTCQuality quality |
网络质量
const char* userId |
用户 ID
struct liteav::TRTCVolumeInfo |
Public 成员函数 | |
TRTCVolumeInfo () | |
成员变量 | |
const char * | userId |
uint32_t | volume |
|
inline |
const char* userId |
说话者的 userId, 如果 userId 为空则代表是当前用户自己。
uint32_t volume |
说话者的音量大小, 取值范围[0 - 100]。
struct liteav::TRTCSpeedTestParams |
Public 成员函数 | |
TRTCSpeedTestParams () | |
成员变量 | |
int | sdkAppId |
const char * | userId |
const char * | userSig |
int | expectedUpBandwidth |
int | expectedDownBandwidth |
|
inline |
int expectedDownBandwidth |
预期的下行带宽(kbps,取值范围: 10 ~ 5000,为 0 时不测试)。
int expectedUpBandwidth |
预期的上行带宽(kbps,取值范围: 10 ~ 5000,为 0 时不测试)。
int sdkAppId |
应用标识,请参考 TRTCParams 中的相关说明。
const char* userId |
用户标识,请参考 TRTCParams 中的相关说明。
const char* userSig |
用户签名,请参考 TRTCParams 中的相关说明。
struct liteav::TRTCSpeedTestResult |
Public 成员函数 | |
TRTCSpeedTestResult () | |
成员变量 | |
bool | success |
const char * | errMsg |
const char * | ip |
TRTCQuality | quality |
float | upLostRate |
float | downLostRate |
int | rtt |
int | availableUpBandwidth |
int | availableDownBandwidth |
|
inline |
int availableDownBandwidth |
下行带宽(kbps,-1:无效值)。
int availableUpBandwidth |
上行带宽(kbps,-1:无效值)。
float downLostRate |
下行丢包率,取值范围是 [0 - 1.0],例如 0.2 表示每从服务器收取 10 个数据包可能会在中途丢失 2 个。
const char* errMsg |
带宽测试错误信息。
const char* ip |
服务器 IP 地址。
TRTCQuality quality |
内部通过评估算法测算出的网络质量,更多信息请参见 TRTCQuality。
int rtt |
延迟(毫秒),指当前设备到 TRTC 服务器的一次网络往返时间,该值越小越好,正常数值范围是10ms - 100ms。
bool success |
测试是否成功。
float upLostRate |
上行丢包率,取值范围是 [0 - 1.0],例如 0.3 表示每向服务器发送 10 个数据包可能会在中途丢失 3 个。
struct liteav::TRTCVideoFrame |
Public 成员函数 | |
TRTCVideoFrame () | |
成员变量 | |
TRTCVideoPixelFormat | videoFormat |
TRTCVideoBufferType | bufferType |
char * | data |
int | textureId |
uint32_t | length |
uint32_t | width |
uint32_t | height |
uint64_t | timestamp |
TRTCVideoRotation | rotation |
|
inline |
TRTCVideoBufferType bufferType |
【字段含义】视频数据结构类型
char* data |
【字段含义】bufferType 为 TRTCVideoBufferType_Buffer 时的视频数据,承载用于 C++ 层的内存数据块。
uint32_t height |
【字段含义】视频高度
uint32_t length |
【字段含义】视频数据的长度,单位是字节。对于 i420 而言:length = width * height * 3 / 2;对于 BGRA32 而言:length = width * height * 4。
TRTCVideoRotation rotation |
【字段含义】视频像素的顺时针旋转角度
int textureId |
【字段含义】视频纹理 ID,bufferType 为 TRTCVideoBufferType_Texture 时的视频数据,承载用于 OpenGL 渲染的纹理数据。
uint64_t timestamp |
【字段含义】视频帧的时间戳,单位毫秒
【推荐取值】自定义视频采集时可以设置为0。若该参数为0,SDK 会自定填充 timestamp 字段,但请“均匀”地控制 sendCustomVideoData 的调用间隔。
TRTCVideoPixelFormat videoFormat |
【字段含义】视频的像素格式
uint32_t width |
【字段含义】视频宽度
struct liteav::TRTCAudioFrame |
Public 成员函数 | |
TRTCAudioFrame () | |
成员变量 | |
TRTCAudioFrameFormat | audioFormat |
char * | data |
uint32_t | length |
uint32_t | sampleRate |
uint32_t | channel |
uint64_t | timestamp |
|
inline |
TRTCAudioFrameFormat audioFormat |
【字段含义】音频帧的格式
uint32_t channel |
【字段含义】声道数
char* data |
【字段含义】音频数据
uint32_t length |
【字段含义】音频数据的长度
uint32_t sampleRate |
【字段含义】采样率
uint64_t timestamp |
【字段含义】时间戳,单位ms
struct liteav::TRTCMixUser |
Public 成员函数 | |
TRTCMixUser () | |
成员变量 | |
const char * | userId |
const char * | roomId |
RECT | rect |
int | zOrder |
TRTCVideoStreamType | streamType |
bool | pureAudio |
TRTCMixInputType | inputType |
uint32_t | renderMode |
const char * | image |
|
inline |
const char* image |
【字段含义】占位图或水印图
TRTCMixInputType inputType |
【字段含义】指定该路流的混合内容(只混音频、只混视频、混合音视频、混入水印)
【默认取值】默认值:TRTCMixInputTypeUndefined
【特别说明】
bool pureAudio |
【字段含义】指定该路流是不是只混合声音
【推荐取值】默认值:false
【特别说明】已废弃,推荐使用8.5版本开始新引入的字段:inputType。
RECT rect |
【字段含义】指定该路画面的坐标区域(单位:像素)
uint32_t renderMode |
【字段含义】该画面在输出时的显示模式
【推荐取值】默认值:视频流默认为0。0为裁剪,1为缩放,2为缩放并显示黑底。
【特别说明】水印图和占位图暂时不支持设置 renderMode,默认强制拉伸处理
const char* roomId |
【字段含义】该路音视频流所在的房间号(设置为空值代表当前用户所在的房间号)
TRTCVideoStreamType streamType |
【字段含义】指定该路画面是主路画面(TRTCVideoStreamTypeBig)还是辅路画面(TRTCVideoStreamTypeSub)。
const char* userId |
【字段含义】用户 ID
int zOrder |
【字段含义】指定该路画面的层级(取值范围:1 - 15,不可重复)
struct liteav::TRTCTranscodingConfig |
Public 成员函数 | |
TRTCTranscodingConfig () | |
成员变量 | |
TRTCTranscodingConfigMode | mode |
uint32_t | appId |
uint32_t | bizId |
uint32_t | videoWidth |
uint32_t | videoHeight |
uint32_t | videoBitrate |
uint32_t | videoFramerate |
uint32_t | videoGOP |
uint32_t | backgroundColor |
const char * | backgroundImage |
uint32_t | audioSampleRate |
uint32_t | audioBitrate |
uint32_t | audioChannels |
uint32_t | audioCodec |
TRTCMixUser * | mixUsersArray |
uint32_t | mixUsersArraySize |
const char * | streamId |
|
inline |
uint32_t appId |
【字段含义】腾讯云直播服务的 AppID
【推荐取值】请在 实时音视频控制台 依次单击【应用管理】=>【应用信息】,并在【旁路直播信息】中获取 appid。
uint32_t audioBitrate |
【字段含义】指定云端转码的目标音频码率
【推荐取值】默认值:64kbps,取值范围是 [32,192]。
uint32_t audioChannels |
【字段含义】指定云端转码的音频声道数
【推荐取值】默认值:1,代表单声道。可设定的数值只有两个数字:1-单声道,2-双声道。
uint32_t audioCodec |
【字段含义】指定云端转码的输出流音频编码类型
【推荐取值】默认值:0,代表LC-AAC。可设定的数值只有三个数字:0 - LC-AAC,1 - HE-AAC,2 - HE-AACv2。
【特别说明】HE-AAC 和 HE-AACv2 支持的输出流音频采样率范围为[48000, 44100, 32000, 24000, 16000]
【特别说明】当音频编码设置为 HE-AACv2 时,只支持输出流音频声道数为双声道。
【特别说明】HE-AAC 和 HE-AACv2 取值仅在输出流为您额外设置的 streamId 上时才生效。
uint32_t audioSampleRate |
【字段含义】指定云端转码的目标音频采样率
【推荐取值】默认值:48000Hz。支持12000HZ、16000HZ、22050HZ、24000HZ、32000HZ、44100HZ、48000HZ。
uint32_t backgroundColor |
【字段含义】指定混合画面的底色颜色
【推荐取值】默认值:0x000000 代表黑色。格式为十六进制数字,比如:“0x61B9F1” 代表 RGB 分别为(97,158,241)。
const char* backgroundImage |
【字段含义】指定混合画面的背景图片
【推荐取值】默认值:空值,即不设置背景图片。
【特别说明】
uint32_t bizId |
【字段含义】腾讯云直播服务的 bizid
【推荐取值】请在 实时音视频控制台 依次单击【应用管理】=>【应用信息】,并在【旁路直播信息】中获取 bizid。
TRTCMixUser* mixUsersArray |
【字段含义】指定云端混流中每一路视频画面的位置、大小、图层以及流类型等信息
【推荐取值】该字段是一个 TRTCMixUser 类型的数组,数组中的每一个元素都用来代表每一路画面的信息。
uint32_t mixUsersArraySize |
【字段含义】 数组 mixUsersArray 的元素个数
【字段含义】排版模式
【推荐取值】请根据您的业务场景要求自行选择,预排版模式是适用性较好的一种模式。
const char* streamId |
【字段含义】输出到 CDN 上的直播流 ID
【推荐取值】默认值:空值,即房间里的多路音视频流最终会混合到接口调用者的那一路音视频流上。
uint32_t videoBitrate |
【字段含义】指定云端转码的目标视频码率(kbps)
【推荐取值】如果填0,TRTC 会根据 videoWidth 和 videoHeight 估算出一个合理的码率值,您也可以参考视频分辨率枚举定义中所推荐的码率值(见注释部分)。
uint32_t videoFramerate |
【字段含义】指定云端转码的目标视频帧率(FPS)
【推荐取值】默认值:15fps,取值范围是 (0,30]。
uint32_t videoGOP |
【字段含义】指定云端转码的目标视频关键帧间隔(GOP)
【推荐取值】默认值:2,单位为秒,取值范围是 [1,8]。
uint32_t videoHeight |
【字段含义】指定云端转码的目标分辨率(高度)
【推荐取值】单位:像素值,推荐值:640,如果你只混合音频流,请将 width 和 height 均设置位 0,否则混流转码后的直播流中会有黑色背景。
uint32_t videoWidth |
【字段含义】指定云端转码的目标分辨率(宽度)
【推荐取值】单位:像素值,推荐值:360,如果你只混合音频流,请将 width 和 height 均设置位 0,否则混流转码后的直播流中会有黑色背景。
struct liteav::TRTCPublishCDNParam |
Public 成员函数 | |
TRTCPublishCDNParam () | |
成员变量 | |
uint32_t | appId |
uint32_t | bizId |
const char * | url |
const char * | streamId |
|
inline |
uint32_t appId |
【字段含义】腾讯云直播服务的 AppID
【推荐取值】请在 实时音视频控制台 依次单击【应用管理】=>【应用信息】,并在【旁路直播信息】中获取 appid。
uint32_t bizId |
【字段含义】腾讯云直播服务的 bizid
【推荐取值】请在 实时音视频控制台 依次单击【应用管理】=>【应用信息】,并在【旁路直播信息】中获取 bizid。
const char* streamId |
【字段含义】需要转推的 streamId
【推荐取值】默认值:空值。如果不填写,则默认转推调用者的旁路流。
const char* url |
【字段含义】指定该路音视频流在第三方直播服务商的推流地址(RTMP 格式)
【推荐取值】各家服务商的推流地址规则差异较大,请根据目标服务商的要求填写合法的推流 URL,TRTC 的后台服务器会按照您填写的 URL 向第三方服务商推送标准格式音视频流。
【特别说明】推流 URL 必须为 RTMP 格式,必须符合您的目标直播服务商的规范要求,否则目标服务商会拒绝来自 TRTC 后台服务的推流请求。
struct liteav::TRTCAudioRecordingParams |
Public 成员函数 | |
TRTCAudioRecordingParams () | |
成员变量 | |
const char * | filePath |
TRTCAudioRecordingContent | recordingContent |
|
inline |
const char* filePath |
【字段含义】录音文件的保存路径(必填)。
【特别说明】该路径需精确到文件名及格式后缀,格式后缀用于决定录音文件的格式,目前支持的格式有 PCM、WAV 和 AAC。 例如:假如您指定路径为 "mypath/record/audio.aac",代表您希望 SDK 生成一个 AAC 格式的音频录制文件。 请您指定一个有读写权限的合法路径,否则录音文件无法生成。
TRTCAudioRecordingContent recordingContent |
【字段含义】音频录制内容类型。
【特别说明】默认录制所有本地和远端音频。
struct liteav::TRTCLocalRecordingParams |
成员变量 | ||
---|---|---|
const char * | filePath |
【字段含义】录制的文件地址(必填),请确保路径有读写权限且合法,否则录制文件无法生成。 |
int | interval | 【字段含义】interval 录制信息更新频率,单位毫秒,有效范围:1000-10000。默认值为-1,表示不回调。 |
TRTCLocalRecordType | recordType | 【字段含义】媒体录制类型,默认值:TRTCRecordTypeBoth,即同时录制音频和视频。 |
struct liteav::TRTCAudioEffectParam |
Public 成员函数 | |
TRTCAudioEffectParam (const int _effectId, const char *_path) | |
成员变量 | |
int | effectId |
const char * | path |
int | loopCount |
bool | publish |
int | volume |
|
inline |
int effectId |
【字段含义】音效 ID
【特别说明】SDK 允许播放多路音效,因此需要音效 ID 进行标记,用于控制音效的开始、停止、音量等。
int loopCount |
【字段含义】循环播放次数
【推荐取值】取值范围为0 - 任意正整数,默认值:0,表示播放音效一次;1表示播放音效两次;以此类推。
const char* path |
【字段含义】音效文件路径,支持的文件格式:aac, mp3, m4a。
bool publish |
【字段含义】音效是否上行
【推荐取值】true:音效在本地播放的同时,会上行至云端,因此远端用户也能听到该音效;false:音效不会上行至云端,因此只能在本地听到该音效。默认值:false
int volume |
【字段含义】音效音量
【推荐取值】取值范围为0 - 100;默认值:100
struct liteav::TRTCSwitchRoomConfig |
Public 成员函数 | |
TRTCSwitchRoomConfig () | |
成员变量 | |
uint32_t | roomId |
const char * | strRoomId |
const char * | userSig |
const char * | privateMapKey |
|
inline |
const char* privateMapKey |
【字段含义】用于权限控制的权限票据(选填),当您希望某个房间只能让特定的 userId 进入时,需要使用 privateMapKey 进行权限保护。
【推荐取值】仅建议有高级别安全需求的客户使用,更多详情请参见 进房权限保护。
uint32_t roomId |
【字段含义】数字房间号码 [选填],在同一个房间内的用户可以看到彼此并能够进行音视频通话。
【推荐取值】取值范围:1 - 4294967294。
【特别说明】roomId 和 strRoomId 必须并且只能填一个。若两者都填,则优先选择 roomId。
const char* strRoomId |
【字段含义】字符串房间号码 [选填],在同一个房间内的用户可以看到彼此并能够进行音视频通话。
【特别说明】roomId 和 strRoomId 必须并且只能填一个。若两者都填,则优先选择 roomId。
const char* userSig |
【字段含义】用户签名 [选填],当前 userId 对应的验证签名,相当于登录密码。 如果您在切换房间时不指定新计算出的 userSig,SDK 会继续使用您在进入房间时(enterRoom)时所指定的 userSig。 这就需要您必须保证旧的 userSig 在切换房间的那一刻仍在签名允许的效期内,否则会导致房间切换失败。
【推荐取值】具体计算方法请参考 如何计算UserSig。
struct liteav::TRTCAudioFrameCallbackFormat |
Public 成员函数 | |
TRTCAudioFrameCallbackFormat () | |
成员变量 | |
int | sampleRate |
int | channel |
int | samplesPerCall |
|
inline |
int channel |
【字段含义】声道数
【推荐取值】默认值:1,代表单声道。可设定的数值只有两个数字:1-单声道,2-双声道。
int sampleRate |
【字段含义】采样率
【推荐取值】默认值:48000Hz。支持 16000, 32000, 44100, 48000。
int samplesPerCall |
【字段含义】采样点数
【推荐取值】取值必须是 sampleRate/100 的整数倍。
struct liteav::TRTCImageBuffer |
Public 成员函数 | |
TRTCImageBuffer () | |
成员变量 | |
const char * | buffer |
uint32_t | length |
uint32_t | width |
uint32_t | height |
|
inline |
const char* buffer |
image content in BGRA format
uint32_t height |
image height
uint32_t length |
buffer size
uint32_t width |
image width
struct liteav::TRTCScreenCaptureSourceInfo |
Public 成员函数 | |
TRTCScreenCaptureSourceInfo () | |
成员变量 | |
TRTCScreenCaptureSourceType | type |
TXView | sourceId |
const char * | sourceName |
TRTCImageBuffer | thumbBGRA |
TRTCImageBuffer | iconBGRA |
bool | isMinimizeWindow |
bool | isMainScreen |
|
inline |
TRTCImageBuffer iconBGRA |
【字段含义】分享窗口的图标
bool isMainScreen |
【字段含义】是否为主显示屏(适用于多显示器的情况)
bool isMinimizeWindow |
【字段含义】是否为最小化窗口
TXView sourceId |
【字段含义】采集源的ID,对于窗口,该字段代表窗口的 ID;对于屏幕,该字段代表显示器的 ID。
const char* sourceName |
【字段含义】采集源名称(采用 UTF8 编码)
TRTCImageBuffer thumbBGRA |
【字段含义】分享窗口的缩略图
【字段含义】采集源类型(是分享整个屏幕?还是分享某个窗口?)
class liteav::ITRTCScreenCaptureSourceList |
Public 成员函数 | |
virtual uint32_t | getCount ()=0 |
virtual TRTCScreenCaptureSourceInfo | getSourceInfo (uint32_t index)=0 |
virtual void | release ()=0 |
|
inlineprotectedvirtual |
|
pure virtual |
Size of this list.
|
pure virtual |
Get element(TRTCScreenCaptureSourceInfo) by index.
|
pure virtual |
Don't use delete!!!
struct liteav::TRTCScreenCaptureProperty |
Public 成员函数 | |
TRTCScreenCaptureProperty () | |
成员变量 | |
bool | enableCaptureMouse |
bool | enableHighLight |
bool | enableHighPerformance |
int | highLightColor |
int | highLightWidth |
bool | enableCaptureChildWindow |
|
inline |
bool enableCaptureChildWindow |
【字段含义】窗口采集时是否采集子窗口(需要子窗口与被采集窗口具有 Owner 或 Popup 属性),默认为 false。
bool enableCaptureMouse |
【字段含义】是否采集目标内容的同时采集鼠标,默认为 true。
bool enableHighLight |
【字段含义】是否高亮正在共享的窗口(在被分享目标周围绘制一个边框),默认为 true。
bool enableHighPerformance |
【字段含义】是否开启高性能模式(只会在分享屏幕时会生效),默认为 true。
【特殊说明】开启后屏幕采集性能最佳,但会丧失抗遮挡能力,如果您同时开启 enableHighLight + enableHighPerformance,远端用户可以看到高亮的边框。
int highLightColor |
【字段含义】指定高亮边框的颜色,RGB 格式,传入 0 时代表采用默认颜色,默认颜色为 #8CBF26。
int highLightWidth |
【字段含义】指定高亮边框的宽度,传入0时采用默认描边宽度,默认宽度为 5px,您可以设置的最大值为 50。
struct liteav::TRTCAudioParallelParams |
Public 成员函数 | |
TRTCAudioParallelParams () | |
成员变量 | |
uint32_t | maxCount |
char ** | includeUsers |
uint32_t | includeUsersCount |
|
inline |
char** includeUsers |
【字段含义】指定用户必定能并发播放。
【特殊说明】指定必定并发播放的用户 ID 列表。这些用户不参与智能选择。 includeUsers 的数量必须小于 maxCount,否则本次并发播放设置失效。 includeUsers 仅在 maxCount > 0 时有效。当 includeUsers 生效时,参与智能并发选择的最大播放数 = maxCount - 有效 includeUsers 的数量。
uint32_t includeUsersCount |
uint32_t maxCount |
【字段含义】最大并发播放数。默认值:0 如果 maxCount > 0,且实际人数 > maxCount,会实时智能选出 maxCount 路数据进行播放,这会极大的降低性能消耗。 如果 maxCount = 0,SDK 不限制并发播放数,在上麦人数比较多的房间可能会引发性能问题。
#define __TRTCTYPEDEF_H__ |
#define TARGET_PLATFORM_DESKTOP ((__APPLE__ && TARGET_OS_MAC && !TARGET_OS_IPHONE) || _WIN32) |
#define TARGET_PLATFORM_MAC (__APPLE__ && TARGET_OS_MAC && !TARGET_OS_IPHONE) |
#define TARGET_PLATFORM_PHONE (__ANDROID__ || (__APPLE__ && TARGET_OS_IOS)) |
#define TRTC_API __declspec(dllexport) |
#define TRTC_API __declspec(dllimport) |
#define TRTC_API __attribute__((visibility("default"))) |
#define TRTC_API __attribute__((visibility("default"))) |
#define TRTC_API |
#define TRTCDeviceStateActive TXMediaDeviceStateActive |
#define TRTCDeviceStateAdd TXMediaDeviceStateAdd |
#define TRTCDeviceStateRemove TXMediaDeviceStateRemove |
#define TRTCDeviceTypeCamera TXMediaDeviceTypeCamera |
#define TRTCDeviceTypeMic TXMediaDeviceTypeMic |
#define TRTCDeviceTypeSpeaker TXMediaDeviceTypeSpeaker |
#define TRTCDeviceTypeUnknow TXMediaDeviceTypeUnknown |
#define WIN32_LEAN_AND_MEAN |
typedef ITXDeviceInfo ITRTCDeviceInfo |
typedef TXMediaDeviceState TRTCDeviceState |
设备操作
该枚举值用于本地设备的状态变化通知onDeviceChange。
typedef TXMediaDeviceType TRTCDeviceType |
设备类型(仅适用于桌面平台)
该枚举值用于定义三种类型的音视频设备,即摄像头、麦克风和扬声器,以便让一套设备管理接口可以操控三种不同类型的设备。 自 Ver8.0 版本开始,TRTC 在 TXDeviceManager 中重新定义了 “TXMediaDeviceType” 用于替换老版本中的 “TRTCMediaDeviceType”, 此处仅保留 “TRTCMediaDeviceType” 的定义,用于兼容老版本的客户代码。
typedef void * TXView |
[VIEW] 用于渲染视频画面的渲染控件
TRTC 中有很多需要操控视频画面的接口,这些接口都需要您指定视频渲染控件,SDK 为不同的终端平台提供了配套的渲染控件。 由于全平台 C++ 接口需要使用统一的参数类型,所以您需要在调用这些接口时,将渲染控件统一转换成 TXView 类型的指针:
代码示例一:在 QT 下使用 C++ 全平台接口
QWidget *videoView; // The relevant code for setting the videoView is omitted here... getTRTCShareInstance()->startLocalPreview(reinterpret_cast<TXView>(videoView->winId()));
代码示例二:在 Android 平台下,通过 JNI 调用 C++ 全平台接口
native void nativeStartLocalPreview(String userId, int streamType, TXCloudVideoView view); //... Java_com_example_test_MainActivity_nativeStartRemoteView(JNIEnv *env, jobject thiz, jstring user_id, jint stream_type, jobject view) { const char *user_id_chars = env->GetStringUTFChars(user_id, nullptr); trtc_cloud->startRemoteView(user_id_chars, (liteav::TRTCVideoStreamType)stream_type, view); env->ReleaseStringUTFChars(user_id, user_id_chars); }
enum TRTCAppScene |
应用场景
TRTC 针对常见的音视频应用场景都进行了定向优化,以满足各种垂直场景下的差异化要求,主要场景可以分为如下两类:
enum TRTCAudioFrameFormat |
enum TRTCAudioQuality |
声音音质
TRTC 提供了三种精心校调好的模式,用来满足各种垂直场景下对音质的差异化追求:
音频录制内容类型
该枚举类型用于音频录制接口startAudioRecording,用于指定录制音频的内容。
枚举值 | |
---|---|
TRTCAudioRecordingContentAll | 录制本地和远端所有音频 |
TRTCAudioRecordingContentLocal | 仅录制本地音频 |
TRTCAudioRecordingContentRemote | 仅录制远端音频 |
视频状态变化原因类型
该枚举类型用于视频状态变化回调接口onRemoteVideoStatusUpdated,用于指定当前的视频状态原因。
enum TRTCAVStatusType |
视频状态类型
该枚举类型用于视频状态变化回调接口onRemoteVideoStatusUpdated,用于指定当前的视频状态。
枚举值 | |
---|---|
TRTCAVStatusStopped | 停止播放 |
TRTCAVStatusPlaying | 正在播放 |
TRTCAVStatusLoading | 正在加载 |
enum TRTCBeautyStyle |
enum TRTCLocalRecordType |
媒体录制类型
该枚举类型用于本地媒体录制接口startLocalRecording,用于指定是录制音视频文件还是纯音频文件。
枚举值 | |
---|---|
TRTCLocalRecordType_Audio | 仅录制音频 |
TRTCLocalRecordType_Video | 仅录制视频 |
TRTCLocalRecordType_Both | 同时录制音频和视频 |
enum TRTCLogLevel |
Log 级别
不同的日志等级定义了不同的详实程度和日志数量,推荐一般情况下将日志等级设置为:TRTCLogLevelInfo。
enum TRTCMixInputType |
enum TRTCQosControlMode |
enum TRTCQuality |
enum TRTCRoleType |
角色
仅适用于直播类场景(即 TRTCAppSceneLIVE 和 TRTCAppSceneVoiceChatRoom),把用户区分成两种不同的身份:
枚举值 | |
---|---|
TRTCRoleAnchor | 主播:可以随时发布自己的音视频流,但人数有限制,同一个房间中最多只允许 50 个主播同时发布自己的音视频流。 |
TRTCRoleAudience | 观众:只能观看其他用户的音视频流,要发布音视频流,需要先通过 switchRole 切换成主播,同一个房间中最多能容纳10万观众。 |
云端混流的排版模式
TRTC 的云端混流服务能够将房间中的多路音视频流混合成一路,因此您需要指定画面的排版方案,我们提供了如下几种排版模式:
enum TRTCVideoBufferType |
视频数据传递方式
在自定义采集和自定义渲染功能,您需要用到下列枚举值来指定您希望以什么方式传递视频数据:
枚举值 | |
---|---|
TRTCVideoBufferType_Unknown | 未定义的传递方式 |
TRTCVideoBufferType_Buffer | 使用内存 Buffer 传递视频数据,iOS: PixelBuffer;Android: 用于 JNI 层的 Direct Buffer;Win: 内存数据块。 |
TRTCVideoBufferType_Texture | 使用 Texture 纹理传递视频数据 |
enum TRTCVideoFillMode |
enum TRTCVideoMirrorType |
enum TRTCVideoPixelFormat |
视频像素格式
TRTC 提供针对视频的自定义采集和自定义渲染功能:
enum TRTCVideoResolution |
视频分辨率
此处仅定义横屏分辨率(如 640 × 360),如需使用竖屏分辨率(如360 × 640),需要同时指定 TRTCVideoResolutionMode 为 Portrait。
视频宽高比模式
TRTCVideoResolution 中仅定义了横屏分辨率(如 640 × 360),如需使用竖屏分辨率(如360 × 640),需要同时指定 TRTCVideoResolutionMode 为 Portrait。
enum TRTCVideoRotation |
enum TRTCVideoStreamType |
视频流类型
TRTC 内部有三种不同的视频流,分别是:
enum TRTCWaterMarkSrcType |