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

详细描述

腾讯云实时音视频的关键类型定义

Module: TRTC 关键类型定义 Function: 分辨率、质量等级等枚举和常量值的定义


结构体说明

◆ TRTCParams

class TRTCParams

属性

UInt32 sdkAppId
 
NSString * userId
 
NSString * userSig
 
UInt32 roomId
 
NSString * strRoomId
 
TRTCRoleType role
 
NSString * streamId
 
NSString * userDefineRecordId
 
NSString * privateMapKey
 
NSString * bussInfo
 

属性说明

◆ sdkAppId

- (UInt32) sdkAppId
readwritenonatomicassign

【字段含义】应用标识(必填),腾讯云基于 sdkAppId 完成计费统计。
【推荐取值】在 实时音视频控制台 创建应用后可以在账号信息页面中得到该 ID。

◆ userId

- (NSString*) userId
readwritenonatomiccopy

【字段含义】用户标识(必填),当前用户的 userId,相当于用户名,使用 UTF-8 编码。
【推荐取值】如果一个用户在您的帐号系统中的 ID 为“mike”,则 userId 即可设置为“mike”。

◆ userSig

- (NSString*) userSig
readwritenonatomiccopy

【字段含义】用户签名(必填),当前 userId 对应的验证签名,相当于使用云服务的登录密码。
【推荐取值】具体计算方法请参见 如何计算UserSig

◆ roomId

- (UInt32) roomId
readwritenonatomicassign

【字段含义】数字房间号,在同一个房间里的用户(userId)可以彼此看到对方并进行音视频通话。
【推荐取值】取值范围:1 - 4294967294。
【特别说明】roomId 与 strRoomId 是互斥的,若您选用 strRoomId,则 roomId 需要填写为0。若两者都填,SDK 将优先选用 roomId。
【请您注意】不要混用 roomId 和 strRoomId,因为它们之间是不互通的,比如数字 123 和字符串 “123” 在 TRTC 看来是两个完全不同的房间。

◆ strRoomId

- (NSString*) strRoomId
readwritenonatomiccopy

【字段含义】字符串房间号,在同一个房间里的用户(userId)可以彼此看到对方并进行音视频通话。
【特别说明】roomId 与 strRoomId 是互斥的,若您选用 strRoomId,则 roomId 需要填写为0。若两者都填,SDK 将优先选用 roomId。
【请您注意】不要混用 roomId 和 strRoomId,因为它们之间是不互通的,比如数字 123 和字符串 “123” 在 TRTC 看来是两个完全不同的房间。
【推荐取值】限制长度为64字节。以下为支持的字符集范围(共 89 个字符):

  • 大小写英文字母(a-zA-Z);
  • 数字(0-9);
  • 空格、"!"、"#"、"$"、"%"、"&"、"("、")"、"+"、"-"、":"、";"、"<"、"="、"."、">"、"?"、"@"、"["、"]"、"^"、"_"、" {"、"}"、"|"、"~"、","。

◆ role

- (TRTCRoleType) role
readwritenonatomicassign

【字段含义】直播场景下的角色,仅适用于直播场景(TRTCAppSceneLIVETRTCAppSceneVoiceChatRoom),通话场景下指定该参数是无效的。
【推荐取值】默认值:主播(TRTCRoleAnchor)。

◆ streamId

- (NSString*) streamId
readwritenonatomiccopy

【字段含义】用于指定在腾讯云直播平台上的 streamId(选填),设置之后,您可以在腾讯云直播 CDN 上通过标准拉流方案(FLV或HLS)播放该用户的音视频流。
【推荐取值】限制长度为64字节,可以不填写,一种推荐的方案是使用 “sdkappid_roomid_userid_main” 作为 streamid,这中命名方式容易辨认且不会在您的多个应用中发生冲突。
【特殊说明】要使用腾讯云直播 CDN,您需要先在控制台 中的功能配置页开启“启动自动旁路直播”开关。
【参考文档】CDN 旁路直播

◆ userDefineRecordId

- (NSString*) userDefineRecordId
readwritenonatomiccopy

【字段含义】云端录制开关(选填),用于指定是否要在云端将该用户的音视频流录制下来。
【参考文档】云端录制
【推荐取值】限制长度为64字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。

方案一:手动录制方案:

  1. 在“控制台 => 应用管理 => 云端录制配置”中开启云端录制。
  2. 设置“录制形式”为“手动录制”。
  3. 设置手动录制后,在一个 TRTC 房间中只有设置了 userDefineRecordId 参数的用户才会在云端录制出视频文件,不指定该参数的用户不会产生录制行为。
  4. 云端会以 “userDefineRecordId_起始时间_结束时间” 的格式命名录制下来的文件。

方案二:自动录制方案:

  1. 需要在“控制台 => 应用管理 => 云端录制配置”中开启云端录制。
  2. 设置“录制形式”为“自动录制”。
  3. 设置自动录制后,在一个 TRTC 房间中的任何一个有音视频上行的用户,均会在云端录制出视频文件。
  4. 文件会以 “userDefineRecordId_起始时间_结束时间” 的格式命名,如果不指定 userDefineRecordId,则文件会以 “streamId_起始时间_结束时间” 命名。

◆ privateMapKey

- (NSString*) privateMapKey
readwritenonatomiccopy

【字段含义】用于权限控制的权限票据(选填),当您希望某个房间只能让特定的 userId 进入时,需要使用 privateMapKey 进行权限保护。
【推荐取值】仅建议有高级别安全需求的客户使用,更多详情请参见 进房权限保护

◆ bussInfo

- (NSString*) bussInfo
readwritenonatomiccopy

【字段含义】业务数据字段(选填),部分高级特性才需要用到此字段。
【推荐取值】请不要自行设置该字段。

◆ TRTCVideoEncParam

class TRTCVideoEncParam

属性

TRTCVideoResolution videoResolution
 
TRTCVideoResolutionMode resMode
 
int videoFps
 
int videoBitrate
 
int minVideoBitrate
 
BOOL enableAdjustRes
 

属性说明

◆ videoResolution

- (TRTCVideoResolution) videoResolution
readwritenonatomicassign

【字段含义】 视频分辨率
【特别说明】如需使用竖屏分辨率,请指定 resMode 为 Portrait,例如: 640 × 360 + Portrait = 360 × 640。
【推荐取值】

  • 手机视频通话:建议选择 360 × 640 及以下分辨率,resMode 选择 Portrait,即竖屏分辨率。
  • 手机在线直播:建议选择 540 × 960,resMode 选择 Portrait,即竖屏分辨率。
  • 桌面平台(Win + Mac):建议选择 640 × 360 及以上分辨率,resMode 选择 Landscape,即横屏分辨率。

◆ resMode

- (TRTCVideoResolutionMode) resMode
readwritenonatomicassign

【字段含义】分辨率模式(横屏分辨率 or 竖屏分辨率)
【推荐取值】手机平台(iOS、Android)建议选择 Portrait,桌面平台(Windows、Mac)建议选择 Landscape。
【特别说明】如需使用竖屏分辨率,请指定 resMode 为 Portrait,例如: 640 × 360 + Portrait = 360 × 640。

◆ videoFps

- (int) videoFps
readwritenonatomicassign

【字段含义】视频采集帧率
【推荐取值】15fps或20fps。5fps以下,卡顿感明显。10fps以下,会有轻微卡顿感。20fps以上,会浪费带宽(电影的帧率为24fps)。
【特别说明】部分 Android 手机的前置摄像头并不支持15fps以上的采集帧率,部分主打美颜功能的 Android 手机的前置摄像头的采集帧率可能低于10fps。

◆ videoBitrate

- (int) videoBitrate
readwritenonatomicassign

【字段含义】目标视频码率,SDK 会按照目标码率进行编码,只有在弱网络环境下才会主动降低视频码率。
【推荐取值】请参考本 TRTCVideoResolution 在各档位注释的最佳码率,也可以在此基础上适当调高。 比如:TRTCVideoResolution_1280_720 对应 1200kbps 的目标码率,您也可以设置为 1500kbps 用来获得更好的观感清晰度。
【特别说明】您可以通过同时设置 videoBitrate 和 minVideoBitrate 两个参数,用于约束 SDK 对视频码率的调整范围:

  • 如果您追求“弱网络下允许卡顿但要保持清晰”的效果,可以设置 minVideoBitrate 为 videoBitrate 的 60%;
  • 如果您追求“弱网络下允许模糊但要保持流畅”的效果,可以设置 minVideoBitrate 为一个较低的数值(比如 100kbps);
  • 如果您将 videoBitrate 和 minVideoBitrate 设置为同一个值,等价于关闭 SDK 对视频码率的自适应调节能力。

◆ minVideoBitrate

- (int) minVideoBitrate
readwritenonatomicassign

【字段含义】最低视频码率,SDK 会在网络不佳的情况下主动降低视频码率以保持流畅度,最低会降至 minVideoBitrate 所设定的数值。
【特别说明】 默认值:0,此时最低码率由 SDK 会根据您指定的分辨率,自动计算出合适的数值。
【推荐取值】您可以通过同时设置 videoBitrate 和 minVideoBitrate 两个参数,用于约束 SDK 对视频码率的调整范围:

  • 如果您追求“弱网络下允许卡顿但要保持清晰”的效果,可以设置 minVideoBitrate 为 videoBitrate 的 60%;
  • 如果您追求“弱网络下允许模糊但要保持流畅”的效果,可以设置 minVideoBitrate 为一个较低的数值(比如 100kbps);
  • 如果您将 videoBitrate 和 minVideoBitrate 设置为同一个值,等价于关闭 SDK 对视频码率的自适应调节能力。

◆ enableAdjustRes

- (BOOL) enableAdjustRes
readwritenonatomicassign

【字段含义】是否允许动态调整分辨率(开启后会对云端录制产生影响)。
【推荐取值】该功能适用于不需要云端录制的场景,开启后 SDK 会根据当前网络情况,智能选择出一个合适的分辨率,避免出现“大分辨率+小码率”的低效编码模式。
【特别说明】默认值:关闭。如有云端录制的需求,请不要开启此功能,因为如果视频分辨率发生变化后,云端录制出的 MP4 在普通的播放器上无法正常播放。

◆ TRTCNetworkQosParam

class TRTCNetworkQosParam

属性

TRTCVideoQosPreference preference
 
TRTCQosControlMode controlMode
 

属性说明

◆ preference

- (TRTCVideoQosPreference) preference
readwritenonatomicassign

【字段含义】清晰优先还是流畅优先
【推荐取值】清晰优先
【特别说明】该参数主要影响 TRTC 在较差网络环境下的音视频表现:

  • 流畅优先:即当前网络不足以传输既清晰又流畅的画面时,优先保证画面的流畅性,代价就是画面会比较模糊且伴随有较多的马赛克。
  • 清晰优先(默认值):即当前网络不足以传输既清晰又流畅的画面时,优先保证画面的清晰度,代价就是画面会比较卡顿。

◆ controlMode

- (TRTCQosControlMode) controlMode
readwritenonatomicassign

【字段含义】流控模式(已废弃)
【推荐取值】云端控制
【特别说明】请设置为云端控制模式(TRTCQosControlModeServer)

◆ TRTCRenderParams

class TRTCRenderParams

属性

TRTCVideoRotation rotation
 
TRTCVideoFillMode fillMode
 
TRTCVideoMirrorType mirrorType
 

属性说明

◆ rotation

- (TRTCVideoRotation) rotation
readwritenonatomicassign

【字段含义】图像的顺时针旋转角度
【推荐取值】支持90、180以及270旋转角度,默认值:TRTCVideoRotation_0

◆ fillMode

- (TRTCVideoFillMode) fillMode
readwritenonatomicassign

【字段含义】画面填充模式
【推荐取值】填充(画面可能会被拉伸裁剪)或适应(画面可能会有黑边),默认值:TRTCVideoFillMode_Fill

◆ mirrorType

- (TRTCVideoMirrorType) mirrorType
readwritenonatomicassign

【字段含义】画面镜像模式
【推荐取值】默认值:TRTCVideoMirrorType_Auto

◆ TRTCQualityInfo

class TRTCQualityInfo

属性

NSString * userId
 
TRTCQuality quality
 

属性说明

◆ userId

- (NSString*) userId
readwritenonatomiccopy

用户 ID

◆ quality

- (TRTCQuality) quality
readwritenonatomicassign

网络质量

◆ TRTCVolumeInfo

class TRTCVolumeInfo

属性

NSString * userId
 
NSUInteger volume
 

属性说明

◆ userId

- (NSString*) userId
readwritenonatomiccopy

说话者的 userId, 如果 userId 为空则代表是当前用户自己。

◆ volume

- (NSUInteger) volume
readwritenonatomicassign

说话者的音量大小, 取值范围[0 - 100]。

◆ TRTCSpeedTestResult

class TRTCSpeedTestResult

属性

NSString * ip
 
TRTCQuality quality
 
float upLostRate
 
float downLostRate
 
uint32_t rtt
 

属性说明

◆ ip

- (NSString*) ip
readwritenonatomicstrong

服务器 IP 地址

◆ quality

- (TRTCQuality) quality
readwritenonatomicassign

内部通过评估算法测算出的网络质量,网络质量越好得分越高。

◆ upLostRate

- (float) upLostRate
readwritenonatomicassign

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

◆ downLostRate

- (float) downLostRate
readwritenonatomicassign

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

◆ rtt

- (uint32_t) rtt
readwritenonatomicassign

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

◆ TRTCVideoFrame

class TRTCVideoFrame

属性

TRTCVideoPixelFormat pixelFormat
 
TRTCVideoBufferType bufferType
 
CVPixelBufferRef pixelBuffer
 
NSData * data
 
GLuint textureId
 
uint32_t width
 
uint32_t height
 
uint64_t timestamp
 
TRTCVideoRotation rotation
 

属性说明

◆ pixelFormat

- (TRTCVideoPixelFormat) pixelFormat
readwritenonatomicassign

【字段含义】视频的像素格式

◆ bufferType

- (TRTCVideoBufferType) bufferType
readwritenonatomicassign

【字段含义】视频数据结构类型

◆ pixelBuffer

- (CVPixelBufferRef) pixelBuffer
readwritenonatomicassign

【字段含义】bufferType 为 TRTCVideoBufferType_PixelBuffer 时的视频数据,承载 iOS 平台专用的 PixelBuffer。

◆ data

- (NSData*) data
readwritenonatomicretain

【字段含义】bufferType 为 TRTCVideoBufferType_NSData 时的视频数据,承载 NSData 类型的内存数据块。

◆ textureId

- (GLuint) textureId
readwritenonatomicassign

【字段含义】视频纹理 ID,bufferType 为 TRTCVideoBufferType_Texture 时的视频数据,承载用于 OpenGL 渲染的纹理数据。

◆ width

- (uint32_t) width
readwritenonatomicassign

【字段含义】视频宽度

◆ height

- (uint32_t) height
readwritenonatomicassign

【字段含义】视频高度

◆ timestamp

- (uint64_t) timestamp
readwritenonatomicassign

【字段含义】视频帧的时间戳,单位毫秒
【推荐取值】自定义视频采集时可以设置为0。若该参数为0,SDK 会自定填充 timestamp 字段,但请“均匀”地控制 sendCustomVideoData 的调用间隔。

◆ rotation

- (TRTCVideoRotation) rotation
readwritenonatomicassign

【字段含义】视频像素的顺时针旋转角度

◆ TRTCAudioFrame

class TRTCAudioFrame

属性

NSData * data
 
TRTCAudioSampleRate sampleRate
 
int channels
 
uint64_t timestamp
 
NSData * extraData
 

属性说明

◆ data

- (NSData*) data
readwritenonatomicretain

【字段含义】音频数据

◆ sampleRate

- (TRTCAudioSampleRate) sampleRate
readwritenonatomicassign

【字段含义】采样率

◆ channels

- (int) channels
readwritenonatomicassign

【字段含义】声道数

◆ timestamp

- (uint64_t) timestamp
readwritenonatomicassign

【字段含义】时间戳,单位ms

◆ extraData

- (NSData*) extraData
readwritenonatomicretain

【字段含义】音频额外数据,远端用户通过 onLocalProcessedAudioFrame 写入的数据会通过该字段回调

◆ TRTCMixUser

class TRTCMixUser

属性

NSString * userId
 
NSString * roomID
 
CGRect rect
 
int zOrder
 
TRTCVideoStreamType streamType
 
BOOL pureAudio
 
TRTCMixInputType inputType
 

属性说明

◆ userId

- (NSString*) userId
readwritenonatomiccopy

【字段含义】用户 ID

◆ roomID

- (NSString*) roomID
readwritenonatomiccopy

【字段含义】该路音视频流所在的房间号(设置为空值代表当前用户所在的房间号)

◆ rect

- (CGRect) rect
readwritenonatomicassign

【字段含义】指定该路画面的坐标区域(单位:像素)

◆ zOrder

- (int) zOrder
readwritenonatomicassign

【字段含义】指定该路画面的层级(取值范围:1 - 15,不可重复)

◆ streamType

- (TRTCVideoStreamType) streamType
readwritenonatomicassign

【字段含义】指定该路画面是主路画面(TRTCVideoStreamTypeBig)还是辅路画面(TRTCVideoStreamTypeSub)。

◆ pureAudio

- (BOOL) pureAudio
readwritenonatomicassign

【字段含义】指定该路流是不是只混合声音
【推荐取值】默认值:NO
【特别说明】已废弃,推荐使用8.5版本开始新引入的字段:inputType。

◆ inputType

- (TRTCMixInputType) inputType
readwritenonatomicassign

【字段含义】指定该路流的混合内容(只混合音频、只混合视频、混合音频和视频),该字段是对 pureAudio 字段的升级。
【推荐取值】默认值:TRTCMixInputTypeUndefined,代表参考 pureAudio 的取值。

  • 如果您是第一次使用 TRTC,之前并没有对 pureAudio 字段进行过设置,您可以根据实际需要设置该字段,不建议您再设置 pureAudio。
  • 如果您之前在老版本中已经使用了 pureAudio 字段,并期望保持其设置,则可以将 inputType 设置为 TRTCMixInputTypeUndefined。

◆ TRTCTranscodingConfig

class TRTCTranscodingConfig

属性

TRTCTranscodingConfigMode mode
 
int appId
 
int bizId
 
int videoWidth
 
int videoHeight
 
int videoBitrate
 
int videoFramerate
 
int videoGOP
 
int backgroundColor
 
NSString * backgroundImage
 
int audioSampleRate
 
int audioBitrate
 
int audioChannels
 
NSArray< TRTCMixUser * > * mixUsers
 
NSString * streamId
 

属性说明

◆ mode

- (TRTCTranscodingConfigMode) mode
readwritenonatomicassign

【字段含义】排版模式
【推荐取值】请根据您的业务场景要求自行选择,预排版模式是适用性较好的一种模式。

◆ appId

- (int) appId
readwritenonatomicassign

【字段含义】腾讯云直播服务的 AppID
【推荐取值】请在 实时音视频控制台 依次单击【应用管理】=>【应用信息】,并在【旁路直播信息】中获取 appid。

◆ bizId

- (int) bizId
readwritenonatomicassign

【字段含义】腾讯云直播服务的 bizid
【推荐取值】请在 实时音视频控制台 依次单击【应用管理】=>【应用信息】,并在【旁路直播信息】中获取 bizid。

◆ videoWidth

- (int) videoWidth
readwritenonatomicassign

【字段含义】指定云端转码的目标分辨率(宽度)
【推荐取值】单位:像素值,推荐值:360,如果你只混合音频流,请将 width 和 height 均设置位 0,否则混流转码后的直播流中会有黑色背景。

◆ videoHeight

- (int) videoHeight
readwritenonatomicassign

【字段含义】指定云端转码的目标分辨率(高度)
【推荐取值】单位:像素值,推荐值:640,如果你只混合音频流,请将 width 和 height 均设置位 0,否则混流转码后的直播流中会有黑色背景。

◆ videoBitrate

- (int) videoBitrate
readwritenonatomicassign

【字段含义】指定云端转码的目标视频码率(kbps)
【推荐取值】如果填0,TRTC 会根据 videoWidth 和 videoHeight 估算出一个合理的码率值,您也可以参考视频分辨率枚举定义中所推荐的码率值(见注释部分)。

◆ videoFramerate

- (int) videoFramerate
readwritenonatomicassign

【字段含义】指定云端转码的目标视频帧率(FPS)
【推荐取值】默认值:15fps,取值范围是 (0,30]。

◆ videoGOP

- (int) videoGOP
readwritenonatomicassign

【字段含义】指定云端转码的目标视频关键帧间隔(GOP)
【推荐取值】默认值:2,单位为秒,取值范围是 [1,8]。

◆ backgroundColor

- (int) backgroundColor
readwritenonatomicassign

【字段含义】指定混合画面的底色颜色
【推荐取值】默认值:0x000000 代表黑色。格式为十六进制数字,比如:“0x61B9F1” 代表 RGB 分别为(97,158,241)。

◆ backgroundImage

- (NSString*) backgroundImage
readwritenonatomiccopy

【字段含义】指定混合画面的背景图片
【推荐取值】默认值:空值,即不设置背景图片。
【特别说明】背景图需要您事先在 “控制台 => 应用管理 => 功能配置 => 素材管理” 中单击【新增图片】按钮进行上传。 上传成功后可以获得对应的“图片ID”,然后将“图片ID”转换成字符串类型并设置到 backgroundImage 里即可。 例如:假设“图片ID” 为 63,可以设置 backgroundImage = "63";

◆ audioSampleRate

- (int) audioSampleRate
readwritenonatomicassign

【字段含义】指定云端转码的目标音频采样率
【推荐取值】默认值:48000Hz。支持12000HZ、16000HZ、22050HZ、24000HZ、32000HZ、44100HZ、48000HZ。

◆ audioBitrate

- (int) audioBitrate
readwritenonatomicassign

【字段含义】指定云端转码的目标音频码率
【推荐取值】默认值:64kbps,取值范围是 [32,192]。

◆ audioChannels

- (int) audioChannels
readwritenonatomicassign

【字段含义】指定云端转码的音频声道数
【推荐取值】默认值:1,代表单声道。可设定的数值只有两个数字:1-单声道,2-双声道。

◆ mixUsers

- (NSArray<TRTCMixUser *>*) mixUsers
readwritenonatomiccopy

【字段含义】指定云端混流中每一路视频画面的位置、大小、图层以及流类型等信息
【推荐取值】该字段是一个 TRTCMixUser 类型的数组,数组中的每一个元素都用来代表每一路画面的信息。

◆ streamId

- (NSString*) streamId
readwritenonatomiccopy

【字段含义】输出到 CDN 上的直播流 ID
【推荐取值】默认值:空值,即房间里的多路音视频流最终会混合到接口调用者的那一路音视频流上。

  • 如不设置该参数,SDK 会执行默认逻辑,即房间里的多路音视频流会混合到该接口调用者的那一路音视频流上,也就是 A + B => A。
  • 如您设置该参数,SDK 会将房间里的多路音视频流混合到您指定的直播流上,也就是 A + B => C(C 代表您指定的 streamId)。

◆ TRTCPublishCDNParam

class TRTCPublishCDNParam

属性

int appId
 
int bizId
 
NSString * url
 

属性说明

◆ appId

- (int) appId
readwritenonatomicassign

【字段含义】腾讯云直播服务的 AppID
【推荐取值】请在 实时音视频控制台 依次单击【应用管理】=>【应用信息】,并在【旁路直播信息】中获取 appid。

◆ bizId

- (int) bizId
readwritenonatomicassign

【字段含义】腾讯云直播服务的 bizid
【推荐取值】请在 实时音视频控制台 依次单击【应用管理】=>【应用信息】,并在【旁路直播信息】中获取 bizid。

◆ url

- (NSString*) url
readwritenonatomicstrong

【字段含义】指定该路音视频流在第三方直播服务商的推流地址(RTMP 格式)
【推荐取值】各家服务商的推流地址规则差异较大,请根据目标服务商的要求填写合法的推流 URL,TRTC 的后台服务器会按照您填写的 URL 向第三方服务商推送标准格式音视频流。
【特别说明】推流 URL 必须为 RTMP 格式,必须符合您的目标直播服务商的规范要求,否则目标服务商会拒绝来自 TRTC 后台服务的推流请求。

◆ TRTCAudioRecordingParams

class TRTCAudioRecordingParams

属性

NSString * filePath
 
TRTCAudioRecordingContent recordingContent
 

属性说明

◆ filePath

- (NSString*) filePath
readwritenonatomicstrong

【字段含义】录音文件的保存路径(必填)。
【特别说明】该路径需精确到文件名及格式后缀,格式后缀用于决定录音文件的格式,目前支持的格式有 PCM、WAV 和 AAC。 例如:假如您指定路径为 "mypath/record/audio.aac",代表您希望 SDK 生成一个 AAC 格式的音频录制文件。 请您指定一个有读写权限的合法路径,否则录音文件无法生成。

◆ recordingContent

- (TRTCAudioRecordingContent) recordingContent
readwritenonatomicassign

【字段含义】音频录制内容类型。
【特别说明】默认录制所有本地和远端音频。

◆ TRTCLocalRecordingParams

class TRTCLocalRecordingParams

属性

NSString * filePath
 
TRTCRecordType recordType
 
int interval
 

属性说明

◆ filePath

- (NSString*) filePath
readwritenonatomiccopy

【字段含义】录制的文件地址(必填),请确保路径有读写权限且合法,否则录制文件无法生成。
【特别说明】该路径需精确到文件名及格式后缀,格式后缀用于决定录制出的文件格式,目前支持的格式暂时只有 MP4。 例如:假如您指定路径为 "mypath/record/test.mp4",代表您希望 SDK 生成一个 MP4 格式的本地视频文件。 请您指定一个有读写权限的合法路径,否则录制文件无法生成。

◆ recordType

- (TRTCRecordType) recordType
readwritenonatomicassign

【字段含义】媒体录制类型,默认值:TRTCRecordTypeBoth,即同时录制音频和视频。

◆ interval

- (int) interval
readwritenonatomicassign

【字段含义】interval 录制信息更新频率,单位毫秒,有效范围:1000-10000。默认值为-1,表示不回调。

◆ TRTCAudioEffectParam

class TRTCAudioEffectParam

构造函数

(_Nonnull instancetype) - init
 
(_Nonnull instancetype) - initWith:path:
 

类方法

(_Nonnull instancetype) + new
 

属性

int effectId
 
NSString * path
 
int loopCount
 
BOOL publish
 
int volume
 

函数文档

◆ new()

+ (_Nonnull instancetype) new

◆ init()

- (_Nonnull instancetype) init

◆ initWith:path:()

- (_Nonnull instancetype) initWith: (int)  effectId
path: (NSString *_Nonnull)  path 

属性说明

◆ effectId

- (int) effectId
readwritenonatomicassign

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

◆ path

- (NSString*) path
readwritenonatomiccopy

【字段含义】音效文件路径,支持的文件格式:aac, mp3, m4a。

◆ loopCount

- (int) loopCount
readwritenonatomicassign

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

◆ publish

- (BOOL) publish
readwritenonatomicassign

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

◆ volume

- (int) volume
readwritenonatomicassign

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

◆ TRTCSwitchRoomConfig

class TRTCSwitchRoomConfig

属性

UInt32 roomId
 
NSString * strRoomId
 
NSString * userSig
 
NSString * privateMapKey
 

属性说明

◆ roomId

- (UInt32) roomId
readwritenonatomicassign

【字段含义】数字房间号码 [选填],在同一个房间内的用户可以看到彼此并能够进行音视频通话。
【推荐取值】取值范围:1 - 4294967294。
【特别说明】roomId 和 strRoomId 必须并且只能填一个。若两者都填,则优先选择 roomId。

◆ strRoomId

- (NSString*) strRoomId
readwritenonatomiccopy

【字段含义】字符串房间号码 [选填],在同一个房间内的用户可以看到彼此并能够进行音视频通话。
【特别说明】roomId 和 strRoomId 必须并且只能填一个。若两者都填,则优先选择 roomId。

◆ userSig

- (NSString*) userSig
readwritenonatomiccopy

【字段含义】用户签名 [选填],当前 userId 对应的验证签名,相当于登录密码。 如果您在切换房间时不指定新计算出的 userSig,SDK 会继续使用您在进入房间时(enterRoom)时所指定的 userSig。 这就需要您必须保证旧的 userSig 在切换房间的那一刻仍在签名允许的效期内,否则会导致房间切换失败。
【推荐取值】具体计算方法请参考 如何计算UserSig

◆ privateMapKey

- (NSString*) privateMapKey
readwritenonatomiccopy

【字段含义】用于权限控制的权限票据(选填),当您希望某个房间只能让特定的 userId 进入时,需要使用 privateMapKey 进行权限保护。
【推荐取值】仅建议有高级别安全需求的客户使用,更多详情请参见 进房权限保护

◆ TRTCAudioFrameDelegateFormat

class TRTCAudioFrameDelegateFormat

属性

TRTCAudioSampleRate sampleRate
 
int channels
 
int samplesPerCall
 

属性说明

◆ sampleRate

- (TRTCAudioSampleRate) sampleRate
readwritenonatomicassign

【字段含义】采样率
【推荐取值】默认值:48000Hz。支持 16000, 32000, 44100, 48000。

◆ channels

- (int) channels
readwritenonatomicassign

【字段含义】声道数
【推荐取值】默认值:1,代表单声道。可设定的数值只有两个数字:1-单声道,2-双声道。

◆ samplesPerCall

- (int) samplesPerCall
readwritenonatomicassign

【字段含义】采样点数
【推荐取值】取值必须是 sampleRate/100 的整数倍。

◆ TRTCScreenCaptureSourceInfo

class TRTCScreenCaptureSourceInfo

属性

TRTCScreenCaptureSourceType type
 
NSString * sourceId
 
NSString * sourceName
 
NSDictionary * extInfo
 
NSImage * thumbnail
 
NSImage * icon
 

属性说明

◆ type

- (TRTCScreenCaptureSourceType) type
readwritenonatomicassign

【字段含义】采集源类型(是分享整个屏幕?还是分享某个窗口?)

◆ sourceId

- (NSString*) sourceId
readwritenonatomiccopy

【字段含义】采集源的ID,对于窗口,该字段代表窗口的 ID;对于屏幕,该字段代表显示器的 ID。

◆ sourceName

- (NSString*) sourceName
readwritenonatomiccopy

【字段含义】采集源名称(采用 UTF8 编码)

◆ extInfo

- (NSDictionary*) extInfo
readwritenonatomicstrong

【字段含义】窗口的扩展信息

◆ thumbnail

- (NSImage*) thumbnail
readnonatomicassign

【字段含义】分享窗口的缩略图

◆ icon

- (NSImage*) icon
readnonatomicassign

【字段含义】分享窗口的图标

类型定义说明

◆ TXView

typedef NSView TXView

[VIEW] 用于渲染视频画面的渲染控件

TRTC 中有很多需要操控视频画面的接口,这些接口都需要您指定视频渲染控件。

  • 在 iOS 系统中,您可以直接使用 UIView 作为视频渲染控件,SDK 会在您提供的 UIView 上绘制视频画面。
  • 在 Mac 系统中,您可以直接使用 NSView 作为视频渲染控件,SDK 会在您提供的 NSView 上绘制视频画面。 示例代码如下:
    UIView *videoView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 360, 640)];
    [self.view addSubview:videoView];
    [trtcCloud startLocalPreview:YES view:_localView];
    

◆ TXImage

typedef NSImage TXImage

◆ TXEdgeInsets

typedef NSEdgeInsets TXEdgeInsets

◆ TRTCMediaDeviceInfo

枚举类型说明

◆ TRTCVideoResolution

enum TRTCVideoResolution : NSInteger

视频分辨率

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

枚举值
TRTCVideoResolution_120_120 

宽高比 1:1;分辨率 120x120;建议码率(VideoCall)80kbps; 建议码率(LIVE)120kbps。

TRTCVideoResolution_160_160 

宽高比 1:1 分辨率 160x160;建议码率(VideoCall)100kbps; 建议码率(LIVE)150kbps。

TRTCVideoResolution_270_270 

宽高比 1:1;分辨率 270x270;建议码率(VideoCall)200kbps; 建议码率(LIVE)300kbps。

TRTCVideoResolution_480_480 

宽高比 1:1;分辨率 480x480;建议码率(VideoCall)350kbps; 建议码率(LIVE)500kbps。

TRTCVideoResolution_160_120 

宽高比4:3;分辨率 160x120;建议码率(VideoCall)100kbps; 建议码率(LIVE)150kbps。

TRTCVideoResolution_240_180 

宽高比 4:3;分辨率 240x180;建议码率(VideoCall)150kbps; 建议码率(LIVE)250kbps。

TRTCVideoResolution_280_210 

宽高比 4:3;分辨率 280x210;建议码率(VideoCall)200kbps; 建议码率(LIVE)300kbps。

TRTCVideoResolution_320_240 

宽高比 4:3;分辨率 320x240;建议码率(VideoCall)250kbps; 建议码率(LIVE)375kbps。

TRTCVideoResolution_400_300 

宽高比 4:3;分辨率 400x300;建议码率(VideoCall)300kbps; 建议码率(LIVE)450kbps。

TRTCVideoResolution_480_360 

宽高比 4:3;分辨率 480x360;建议码率(VideoCall)400kbps; 建议码率(LIVE)600kbps。

TRTCVideoResolution_640_480 

宽高比 4:3;分辨率 640x480;建议码率(VideoCall)600kbps; 建议码率(LIVE)900kbps。

TRTCVideoResolution_960_720 

宽高比 4:3;分辨率 960x720;建议码率(VideoCall)1000kbps; 建议码率(LIVE)1500kbps。

TRTCVideoResolution_160_90 

宽高比 16:9;分辨率 160x90;建议码率(VideoCall)150kbps; 建议码率(LIVE)250kbps。

TRTCVideoResolution_256_144 

宽高比 16:9;分辨率 256x144;建议码率(VideoCall)200kbps; 建议码率(LIVE)300kbps。

TRTCVideoResolution_320_180 

宽高比 16:9;分辨率 320x180;建议码率(VideoCall)250kbps; 建议码率(LIVE)400kbps。

TRTCVideoResolution_480_270 

宽高比 16:9;分辨率 480x270;建议码率(VideoCall)350kbps; 建议码率(LIVE)550kbps。

TRTCVideoResolution_640_360 

宽高比 16:9;分辨率 640x360;建议码率(VideoCall)500kbps; 建议码率(LIVE)900kbps。

TRTCVideoResolution_960_540 

宽高比 16:9;分辨率 960x540;建议码率(VideoCall)850kbps; 建议码率(LIVE)1300kbps。

TRTCVideoResolution_1280_720 

宽高比 16:9;分辨率 1280x720;建议码率(VideoCall)1200kbps; 建议码率(LIVE)1800kbps。

TRTCVideoResolution_1920_1080 

宽高比 16:9;分辨率 1920x1080;建议码率(VideoCall)2000kbps; 建议码率(LIVE)3000kbps。

◆ TRTCVideoResolutionMode

enum TRTCVideoResolutionMode : NSInteger

视频宽高比模式

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

枚举值
TRTCVideoResolutionModeLandscape 

横屏分辨率,例如:TRTCVideoResolution_640_360 + TRTCVideoResolutionModeLandscape = 640 × 360。

TRTCVideoResolutionModePortrait 

竖屏分辨率,例如:TRTCVideoResolution_640_360 + TRTCVideoResolutionModePortrait = 360 × 640。

◆ TRTCVideoStreamType

enum TRTCVideoStreamType : NSInteger

视频流类型

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

  • 高清大画面:一般用来传输摄像头的视频数据。
  • 低清小画面:小画面和大画面的内容相互,但是分辨率和码率都比大画面低,因此清晰度也更低。
  • 辅流画面:一般用于屏幕分享,同一时间在同一个房间中只允许一个用户发布辅流视频,其他用户必须要等该用户关闭之后才能发布自己的辅流。
    注意
    不支持单独开启低清小画面,小画面必须依附于大画面而存在,SDK 会自动设定低清小画面的分辨率和码率。
枚举值
TRTCVideoStreamTypeBig 

高清大画面,一般用来传输摄像头的视频数据。

TRTCVideoStreamTypeSmall 

低清小画面:小画面和大画面的内容相互,但是分辨率和码率都比大画面低,因此清晰度也更低。

TRTCVideoStreamTypeSub 

辅流画面:一般用于屏幕分享,同一时间在同一个房间中只允许一个用户发布辅流视频,其他用户必须要等该用户关闭之后才能发布自己的辅流。

◆ TRTCVideoFillMode

enum TRTCVideoFillMode : NSInteger

视频画面填充模式

如果视频显示区域的宽高比不等于视频内容的宽高比时,就需要您指定画面的填充模式:

枚举值
TRTCVideoFillMode_Fill 

填充模式:即将画面内容居中等比缩放以充满整个显示区域,超出显示区域的部分将会被裁剪掉,此模式下画面可能不完整。

TRTCVideoFillMode_Fit 

适应模式:即按画面长边进行缩放以适应显示区域,短边部分会被填充为黑色,此模式下图像完整但可能留有黑边。

◆ TRTCVideoRotation

enum TRTCVideoRotation : NSInteger

视频画面旋转方向

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

枚举值
TRTCVideoRotation_0 

不旋转

TRTCVideoRotation_90 

顺时针旋转90度

TRTCVideoRotation_180 

顺时针旋转180度

TRTCVideoRotation_270 

顺时针旋转270度

◆ TRTCBeautyStyle

enum TRTCBeautyStyle : NSInteger

美颜(磨皮)算法

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

枚举值
TRTCBeautyStyleSmooth 

光滑,算法比较激进,磨皮效果比较明显,适用于秀场直播。

TRTCBeautyStyleNature 

自然,算法更多地保留了面部细节,磨皮效果更加自然,适用于绝大多数直播场景。

TRTCBeautyStylePitu 

优图,由优图实验室提供,磨皮效果介于光滑和自然之间,比光滑保留更多皮肤细节,比自然磨皮程度更高。

◆ TRTCVideoPixelFormat

enum TRTCVideoPixelFormat : NSInteger

视频像素格式

TRTC 提供针对视频的自定义采集和自定义渲染功能:

  • 在自定义采集功能中,您可以用下列枚举值描述您采集的视频像素格式。
  • 在自定义渲染功能中,您可以指定您期望 SDK 回调出的视频像素格式。
枚举值
TRTCVideoPixelFormat_Unknown 

未定义的格式

TRTCVideoPixelFormat_I420 

YUV420P(I420) 格式

TRTCVideoPixelFormat_Texture_2D 

OpenGL 2D 纹理格式

TRTCVideoPixelFormat_32BGRA 

BGRA 格式

TRTCVideoPixelFormat_NV12 

YUV420SP(NV12)格式

◆ TRTCVideoBufferType

enum TRTCVideoBufferType : NSInteger

视频数据传递方式

在自定义采集和自定义渲染功能,您需要用到下列枚举值来指定您希望以什么方式传递视频数据:

  • 方案一:使用内存 Buffer 传递视频数据,该方案在 iOS 效率尚可,但在 Android 系统上效率较差,Windows 暂时仅支持内存 Buffer 的传递方式。
  • 方案二:使用 Texture 纹理传递视频数据,该方案在 iOS 和 Android 系统下均有较高的效率,Windows 暂不支持,需要您有一定的 OpenGL 编程基础。
枚举值
TRTCVideoBufferType_Unknown 

未定义的传递方式

TRTCVideoBufferType_PixelBuffer 

使用内存 Buffer 传递视频数据,iOS: PixelBuffer;Android: 用于 JNI 层的 Direct Buffer;Win: 内存数据块。

TRTCVideoBufferType_NSData 

使用内存 Buffer 传递视频数据,iOS: 经过一次额外整理后更加紧凑的 NSData 类型的内存块;Android: 用于 JAVA 层的 byte[]。 该传递的方式的性能是几种方案中效率较差的一种。

TRTCVideoBufferType_Texture 

使用 Texture 纹理传递视频数据

◆ TRTCVideoMirrorType

enum TRTCVideoMirrorType : NSUInteger

视频的镜像类型

视频的镜像是指对视频内容进行左右翻转,尤其是对本地的摄像头预览视频,开启镜像后能给主播带来熟悉的“照镜子”体验。

枚举值
TRTCVideoMirrorTypeAuto 

自动模式:如果正使用前置摄像头则开启镜像,如果是后置摄像头则不开启镜像(仅适用于移动设备)。

TRTCVideoMirrorTypeEnable 

强制开启镜像,不论当前使用的是前置摄像头还是后置摄像头。

TRTCVideoMirrorTypeDisable 

强制关闭镜像,不论当前使用的是前置摄像头还是后置摄像头。

◆ TRTCLocalVideoMirrorType

enum TRTCLocalVideoMirrorType : NSUInteger

Old version of TRTCVideoMirrorType, reserved for compatibility with older interface.

枚举值
TRTCLocalVideoMirrorType_Auto 
TRTCLocalVideoMirrorType_Enable 
TRTCLocalVideoMirrorType_Disable 

◆ TRTCSnapshotSourceType

enum TRTCSnapshotSourceType : NSUInteger

本地视频截图的数据源

SDK 支持从如下两种数据源中截取图片并保存成本地文件:

  • 视频流:从视频流中截取原生的视频内容,截取的内容不受渲染控件的显示控制。
  • 渲染层:从渲染控件中截取显示的视频内容,可以做到用户所见即所得的效果,但如果显示区域过小,截取出的图片也会很小。
枚举值
TRTCSnapshotSourceTypeStream 

从视频流中截取原生的视频内容,截取的内容不受渲染控件的显示控制。

TRTCSnapshotSourceTypeView 

从渲染控件中截取显示的视频内容,可以做到用户所见即所得的效果,但如果显示区域过小,截取出的图片也会很小。

◆ TRTCAppScene

enum TRTCAppScene : NSInteger

应用场景

TRTC 针对常见的音视频应用场景都进行了定向优化,以满足各种垂直场景下的差异化要求,主要场景可以分为如下两类:

  • 直播(LIVE)场景:包括 LIVE 和 VoiceChatRoom,前者是音频+视频,后者是纯音频。 直播场景下,用户被分成“主播”和“观众”两种角色,单个房间中同时最多支持10万人在线,适合于观众人数众多的直播场景。
  • 实时(RTC)场景:包括 VideoCall 和 AudioCall,前者是音频+视频,后者是纯音频。 实时场景下,用户没有角色的差异,但单个房间中同时最多支持 300 人在线,适合于小范围实时通信的场景。
枚举值
TRTCAppSceneVideoCall 

视频通话场景,支持720P、1080P高清画质,单个房间最多支持300人同时在线,最高支持50人同时发言。 适用于[1对1视频通话]、[300人视频会议]、[在线问诊]、[教育小班课]、[远程面试]等业务场景。

TRTCAppSceneLIVE 

视频互动直播,支持平滑上下麦,切换过程无需等待,主播延时小于300ms;支持十万级别观众同时播放,播放延时低至1000ms。 适用于[低延时互动直播]、[大班课]、[主播PK]、[视频相亲]、[在线互动课堂]、[远程培训]、[超大型会议]等业务场景。

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

语音通话场景,默认采用 SPEECH 音质,单个房间最多支持300人同时在线,最高支持50人同时发言。 适用于[1对1语音通话]、[300人语音会议]、[语音聊天]、[语音会议]、[在线狼人杀]等业务场景。

TRTCAppSceneVoiceChatRoom 

语音互动直播,支持平滑上下麦,切换过程无需等待,主播延时小于300ms;支持十万级别观众同时播放,播放延时低至1000ms。 适用于[语音俱乐部]、[在线K歌房]、[音乐直播间]、[FM电台]等业务场景。

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

◆ TRTCRoleType

enum TRTCRoleType : NSInteger

角色

仅适用于直播类场景(即 TRTCAppSceneLIVE 和 TRTCAppSceneVoiceChatRoom),把用户区分成两种不同的身份:

  • 主播:可以随时发布自己的音视频流,但人数有限制,同一个房间中最多只允许 50 个主播同时发布自己的音视频流。
  • 观众:只能观看其他用户的音视频流,要发布音视频流,需要先通过 switchRole 切换成主播,同一个房间中最多能容纳10万观众。
枚举值
TRTCRoleAnchor 

主播:可以随时发布自己的音视频流,但人数有限制,同一个房间中最多只允许 50 个主播同时发布自己的音视频流。

TRTCRoleAudience 

观众:只能观看其他用户的音视频流,要发布音视频流,需要先通过 switchRole 切换成主播,同一个房间中最多能容纳10万观众。

◆ TRTCQosControlMode

enum TRTCQosControlMode : NSInteger

流控模式(已废弃)

枚举值
TRTCQosControlModeClient 

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

TRTCQosControlModeServer 

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

◆ TRTCVideoQosPreference

enum TRTCVideoQosPreference : NSInteger

画质偏好

TRTC 在弱网络环境下有两种调控模式:“优先保证画面清晰”或“优先保证画面流畅”,两种模式均会优先保障声音数据的传输。

枚举值
TRTCVideoQosPreferenceSmooth 

流畅优先:即当前网络不足以传输既清晰又流畅的画面时,优先保证画面的流畅性,代价就是画面会比较模糊且伴随有较多的马赛克。

TRTCVideoQosPreferenceClear 

清晰优先(默认值):即当前网络不足以传输既清晰又流畅的画面时,优先保证画面的清晰度,代价就是画面会比较卡顿。

◆ TRTCQuality

enum TRTCQuality : NSInteger

网络质量

TRTC 会每隔两秒对当前的网络质量进行评估,评估结果为六个等级:Excellent 表示最好,Down 表示最差。

枚举值
TRTCQuality_Unknown 

未定义

TRTCQuality_Excellent 

当前网络非常好

TRTCQuality_Good 

当前网络比较好

TRTCQuality_Poor 

当前网络一般

TRTCQuality_Bad 

当前网络较差

TRTCQuality_Vbad 

当前网络很差

TRTCQuality_Down 

当前网络不满足 TRTC 的最低要求

◆ TRTCAVStatusType

enum TRTCAVStatusType : NSUInteger

视频状态类型

该枚举类型用于视频状态变化回调接口onRemoteVideoStatusUpdated,用于指定当前的视频状态。

枚举值
TRTCAVStatusStopped 

停止播放

TRTCAVStatusPlaying 

正在播放

TRTCAVStatusLoading 

正在加载

◆ TRTCAVStatusChangeReason

enum TRTCAVStatusChangeReason : NSUInteger

视频状态变化原因类型

该枚举类型用于视频状态变化回调接口onRemoteVideoStatusUpdated,用于指定当前的视频状态原因。

枚举值
TRTCAVStatusChangeReasonInternal 

缺省值

TRTCAVStatusChangeReasonBufferingBegin 

网络缓冲

TRTCAVStatusChangeReasonBufferingEnd 

结束缓冲

TRTCAVStatusChangeReasonLocalStarted 

本地启动视频流播放

TRTCAVStatusChangeReasonLocalStopped 

本地停止视频流播放

TRTCAVStatusChangeReasonRemoteStarted 

远端视频流开始(或继续)

TRTCAVStatusChangeReasonRemoteStopped 

远端视频流停止(或中断

◆ TRTCAudioSampleRate

enum TRTCAudioSampleRate : NSInteger

音频采样率

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

枚举值
TRTCAudioSampleRate16000 

16k采样率

TRTCAudioSampleRate32000 

32k采样率

TRTCAudioSampleRate44100 

44.1k采样率

TRTCAudioSampleRate48000 

48k采样率

◆ TRTCAudioQuality

enum TRTCAudioQuality : NSInteger

声音音质

TRTC 提供了三种精心校调好的模式,用来满足各种垂直场景下对音质的差异化追求:

  • 人声模式(Speech):适用于以人声沟通为主的应用场景,该模式下音频传输的抗性较强,TRTC 会通过各种人声处理技术保障在弱网络环境下的流畅度最佳。
  • 音乐模式(Music):适用于对声乐要求很苛刻的场景,该模式下音频传输的数据量很大,TRTC 会通过各项技术确保音乐信号在各频段均能获得高保真的细节还原度。
  • 默认模式(Default):介于 Speech 和 Music 之间的档位,对音乐的还原度比人声模式要好,但传输数据量比音乐模式要低很多,对各种场景均有不错的适应性。
枚举值
TRTCAudioQualitySpeech 

人声模式:采样率:16k;单声道;编码码率:16kbps;具备几个模式中最强的网络抗性,适合语音通话为主的场景,比如在线会议,语音通话等。

TRTCAudioQualityDefault 

默认模式:采样率:48k;单声道;编码码率:50kbps;介于 Speech 和 Music 之间的档位,SDK 默认档位,推荐选择。

TRTCAudioQualityMusic 

音乐模式:采样率:48k;全频带立体声;编码码率:128kbps;适合需要高保真传输音乐的场景,比如在线K歌、音乐直播等。

◆ TRTCAudioRoute

enum TRTCAudioRoute : NSInteger

音频路由(即声音的播放模式)

音频路由,即声音是从手机的扬声器还是从听筒中播放出来,因此该接口仅适用于手机等移动端设备。 手机有两个扬声器:一个是位于手机顶部的听筒,一个是位于手机底部的立体声扬声器。

  • 设置音频路由为听筒时,声音比较小,只有将耳朵凑近才能听清楚,隐私性较好,适合用于接听电话。
  • 设置音频路由为扬声器时,声音比较大,不用将手机贴脸也能听清,因此可以实现“免提”的功能。
枚举值
TRTCAudioModeSpeakerphone 

Speakerphone:使用扬声器播放(即“免提”),扬声器位于手机底部,声音偏大,适合外放音乐。

TRTCAudioModeEarpiece 

Earpiece:使用听筒播放,听筒位于手机顶部,声音偏小,适合需要保护隐私的通话场景。

◆ TRTCReverbType

enum TRTCReverbType : NSInteger

声音混响模式

该枚举值应用于设定直播场景中的混响模式,常用于秀场直播中。

枚举值
TRTCReverbType_0 

关闭混响

TRTCReverbType_1 

KTV

TRTCReverbType_2 

小房间

TRTCReverbType_3 

大会堂

TRTCReverbType_4 

低沉

TRTCReverbType_5 

洪亮

TRTCReverbType_6 

金属声

TRTCReverbType_7 

磁性

◆ TRTCVoiceChangerType

enum TRTCVoiceChangerType : NSInteger

变声类型

该枚举值应用于设定直播场景中的变声模式,常用于秀场直播中。

枚举值
TRTCVoiceChangerType_0 

关闭变声

TRTCVoiceChangerType_1 

熊孩子

TRTCVoiceChangerType_2 

萝莉

TRTCVoiceChangerType_3 

大叔

TRTCVoiceChangerType_4 

重金属

TRTCVoiceChangerType_5 

感冒

TRTCVoiceChangerType_6 

外国人

TRTCVoiceChangerType_7 

困兽

TRTCVoiceChangerType_8 

死肥仔

TRTCVoiceChangerType_9 

强电流

TRTCVoiceChangerType_10 

重机械

TRTCVoiceChangerType_11 

空灵

◆ TRTCSystemVolumeType

enum TRTCSystemVolumeType : NSInteger

系统音量类型(仅适用于移动设备)

现代智能手机中一般都具备两套系统音量类型,即“通话音量”和“媒体音量”。

  • 通话音量:手机专门为接打电话所设计的音量类型,自带回声抵消(AEC)功能,并且支持通过蓝牙耳机上的麦克风进行拾音,缺点是音质比较一般。 当您通过手机侧面的音量按键下调手机音量时,如果无法将其调至零(也就是无法彻底静音),说明您的手机当前处于通话音量。
  • 媒体音量:手机专门为音乐场景所设计的音量类型,无法使用系统的 AEC 功能,并且不支持通过蓝牙耳机的麦克风进行拾音,但具备更好的音乐播放效果。 当您通过手机侧面的音量按键下调手机音量时,如果能够将手机音量调至彻底静音,说明您的手机当前处于媒体音量。 SDK 目前提供了三种系统音量类型的控制模式:自动切换模式、全程通话音量模式、全程媒体音量模式。
枚举值
TRTCSystemVolumeTypeAuto 

自动切换模式: 也被称为“麦上通话,麦下媒体”,即主播上麦时使用通话音量,观众不上麦则使用媒体音量,适合在线直播场景。 如果您在 enterRoom 时选择的场景为 TRTCAppSceneLIVE 或 TRTCAppSceneVoiceChatRoom,SDK 会自动使用该模式。

TRTCSystemVolumeTypeMedia 

全程媒体音量: 通话全程使用媒体音量,并不是非常常用的音量类型,适用于对音质要求比较苛刻的音乐场景中。 如果您的用户大都使用外接设备(比如外接声卡)为主,可以使用该模式,否则请慎用。

TRTCSystemVolumeTypeVOIP 

全程通话音量: 该方案的优势在于用户在上下麦时音频模块无需切换工作模式,可以做到无缝上下麦,适合于用户需要频繁上下麦的应用场景。 如果您在 enterRoom 时选择的场景为 TRTCAppSceneVideoCall 或 TRTCAppSceneAudioCall,SDK 会自动使用该模式。

◆ TRTCLogLevel

enum TRTCLogLevel : NSInteger

Log 级别

不同的日志等级定义了不同的详实程度和日志数量,推荐一般情况下将日志等级设置为:TRTCLogLevelInfo。

枚举值
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

◆ TRTCGSensorMode

enum TRTCGSensorMode : NSInteger

重力感应开关(仅适用于移动端)

枚举值
TRTCGSensorMode_Disable 

不适配重力感应 该模式是桌面平台上的默认值,该模式下,当前用户发布出去的视频画面不受重力感应方向变化的影响。

TRTCGSensorMode_UIAutoLayout 

适配重力感应 该模式是移动平台上的默认值,该模式下,当前用户发布出去的视频画面会跟随设备的重力感应方向进行相应的调整,同时本地预览画面保持方向不变。 SDK 目前支持的一种适配模式是:当手机或 Pad 上下颠倒时,为了保证远端用户看到的画面方向正常,SDK 会自动将发布出去的画面上下旋转180度。 如果您的 APP 的界面层开启了重力感应自适应,推荐使用 UIFixLayout 模式。

TRTCGSensorMode_UIFixLayout 

适配重力感应 该模式下,当前用户发布出去的视频画面会跟随设备的重力感应方向进行相应的调整,同时本地预览画面也会进行相应的旋转适配。 目前支持的一种特性是:当手机或 Pad 上下颠倒时,为了保证远端用户看到的画面方向正常,SDK 会自动将发布出去的画面上下旋转180度。 如果您的 APP 的界面层不支持重力感应自适应,并且希望 SDK 的视频画面能够适配重力感应方向,推荐使用 UIFixLayout 模式。

◆ TRTCScreenCaptureSourceType

enum TRTCScreenCaptureSourceType : NSInteger

屏幕分享的目标类型(仅适用于桌面端)

枚举值
TRTCScreenCaptureSourceTypeUnknown 

未定义

TRTCScreenCaptureSourceTypeWindow 

该分享目标是某一个应用的窗口

TRTCScreenCaptureSourceTypeScreen 

该分享目标是某一台显示器的屏幕

◆ TRTCTranscodingConfigMode

enum TRTCTranscodingConfigMode : NSInteger

云端混流的排版模式

TRTC 的云端混流服务能够将房间中的多路音视频流混合成一路,因此您需要指定画面的排版方案,我们提供了如下几种排版模式:

枚举值
TRTCTranscodingConfigMode_Unknown 

未定义

TRTCTranscodingConfigMode_Manual 

全手动排版模式 该模式下,您需要指定每一路画面的精确排版位置。该模式的自由度最高,但易用性也最差:

  • 您需要填写 TRTCTranscodingConfig 中的所有参数,包括每一路画面(TRTCMixUser)的位置坐标。
  • 您需要监听 TRTCCloudDelegate 中的 onUserVideoAvailable() 和 onUserAudioAvailable() 事件回调,并根据当前房间中各个麦上用户的音视频状态不断地调整 mixUsers 参数。
TRTCTranscodingConfigMode_Template_PureAudio 

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

  • 您只需要在进入房间后,通过 setMixTranscodingConfig() 接口设置一次,之后 SDK 就会自动把房间内所有上麦用户的声音混流到当前用户的直播流上。
  • 您无需设置 TRTCTranscodingConfig 中的 mixUsers 参数,只需设置 audioSampleRate、audioBitrate 和 audioChannels 等参数即可。
TRTCTranscodingConfigMode_Template_PresetLayout 

预排版模式 最受欢迎的排版模式,因为该模式支持您通过占位符提前对各路画面的位置进行设定,之后 SDK 会自动根据房间中画面的路数动态进行适配调整。 此模式下,您依然需要设置 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 会将屏幕分享画面绘制到同样的画布上。 此种排版模式的目的是为了确保混流模块的输出分辨率一致,避免课程回放和网页观看的花屏问题(网页播放器不支持可变分辨率)。 同时,连麦学生的声音也会被默认混合到老师的音视频流中。 br> 由于教学模式下的视频内容以屏幕分享为主,因此同时传输摄像头画面和屏幕分享画面是非常浪费带宽的。 推荐的做法是直接将摄像头画面通过 setLocalVideoRenderCallback 接口自定义绘制到当前屏幕上。 在该模式下,您无需设置 TRTCTranscodingConfig 中的 mixUsers 参数,SDK 不会混合学生的画面,以免干扰屏幕分享的效果。 br> 您可以将 TRTCTranscodingConfig 中的 width × height 设为 0px × 0px,SDK 会自动根据用户当前屏幕的宽高比计算出一个合适的分辨率:
  • 如果老师当前屏幕宽度 <= 1920px,SDK 会使用老师当前屏幕的实际分辨率。
  • 如果老师当前屏幕宽度 > 1920px,SDK 会根据当前屏幕宽高比,选择 1920x1080(16:9)、1920x1200(16:10)、1920x1440(4:3) 三种分辨率中的一种。

◆ TRTCRecordType

enum TRTCRecordType : NSUInteger

媒体录制类型

该枚举类型用于本地媒体录制接口startLocalRecording,用于指定是录制音视频文件还是纯音频文件。

枚举值
TRTCRecordTypeAudio 

仅录制音频

TRTCRecordTypeVideo 

仅录制视频

TRTCRecordTypeBoth 

同时录制音频和视频

◆ TRTCMixInputType

enum TRTCMixInputType : NSUInteger

混流输入类型

枚举值
TRTCMixInputTypeUndefined 

不指定,SDK 会根据另一个参数 pureAudio 的数值决定混流输入类型

TRTCMixInputTypeAudioVideo 

混入音频和视频

TRTCMixInputTypePureVideo 

只混入视频

TRTCMixInputTypePureAudio 

只混入音频

◆ TRTCMediaDeviceType

enum TRTCMediaDeviceType : NSInteger

设备类型(仅适用于桌面平台)

该枚举值用于定义三种类型的音视频设备,即摄像头、麦克风和扬声器,以便让一套设备管理接口可以操控三种不同类型的设备。 自 Ver8.0 版本开始,TRTC 在 TXDeviceManager 中重新定义了 “TXMediaDeviceType” 用于替换老版本中的 “TRTCMediaDeviceType”, 此处仅保留 “TRTCMediaDeviceType” 的定义,用于兼容老版本的客户代码。

枚举值
TRTCMediaDeviceTypeUnknown 

undefined device type

TRTCMediaDeviceTypeAudioInput 

microphone

TRTCMediaDeviceTypeAudioOutput 

speaker

TRTCMediaDeviceTypeVideoCamera 

camera

TRTCMediaDeviceTypeVideoWindow 

windows(for screen share)

TRTCMediaDeviceTypeVideoScreen 

screen (for screen share)

◆ TRTCAudioRecordingContent

enum TRTCAudioRecordingContent : NSUInteger

音频录制内容类型

该枚举类型用于音频录制接口startAudioRecording,用于指定录制音频的内容。

枚举值
TRTCAudioRecordingContentAll 

录制本地和远端所有音频

TRTCAudioRecordingContentLocal 

仅录制本地音频

TRTCAudioRecordingContentRemote 

仅录制远端音频