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

详细描述

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


结构体说明

◆ 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

◆ 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,相当于登录用户名。
【推荐取值】限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。

◆ userSig

- (NSString*) userSig
readwritenonatomiccopy

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

◆ roomId

- (UInt32) roomId
readwritenonatomicassign

【字段含义】数字房间号码,在同一个房间里的用户(userId)可以彼此看到对方并进行视频通话
【推荐取值】取值范围:1 - 4294967294。
【特别说明】roomId 与 strRoomId 必填一个,若您选用 strRoomId,则 roomId 需要填写为0。若两者都填,将优先选用 roomId。 请注意,同一个 sdkAppId 互通时,请务必选用同一种房间号码类型,避免影响互通。

◆ strRoomId

- (NSString*) strRoomId
readwritenonatomiccopy

【字段含义】字符串房间号码,在同一个房间里的用户(userId)可以彼此看到对方并进行视频通话。
【推荐取值】限制长度为64字节。以下为支持的字符集范围(共 89 个字符): -大小写英文字母(a-zA-Z); -数字(0-9); -空格、"!"、"#"、"$"、"%"、"&"、"("、")"、"+"、"-"、":"、";"、"<"、"="、"."、">"、"?"、"@"、"["、"]"、"^"、"_"、" {"、"}"、"|"、"~"、","。
【特别说明】roomId 与 strRoomId 必填一个,若您选用 strRoomId,则 roomId 需要填写为0。若两者都填,将优先选用 roomId。 请注意,同一个 sdkAppId 互通时,请务必选用同一种房间号码类型,避免影响互通。

◆ role

- (TRTCRoleType) role
readwritenonatomicassign

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

◆ streamId

- (NSString*) streamId
readwritenonatomiccopy

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

◆ userDefineRecordId

- (NSString*) userDefineRecordId
readwritenonatomiccopy

【字段含义】云端录制开关,用于指定是否要在云端将该用户的音视频流录制成指定格式的文件。 方案一:手动录制

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

方案二:自动录制

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


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

◆ 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

【字段含义】视频分辨率
【推荐取值】

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

【字段含义】分辨率模式(横屏分辨率 - 竖屏分辨率)
【推荐取值】手机直播建议选择 Portrait,Window 和 Mac 建议选择 Landscape。
【特别说明】如果 videoResolution 指定分辨率 640 × 360,resMode 指定模式为 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 用来获得更好的清晰度观感。
【特别说明】SDK 会努力按照 videoBitrate 指定的码率进行编码,只有在网络不佳的情况下才会主动降低视频码率,最低会降至 minVideoBitrate 所设定的数值。 如果您追求“允许卡顿但要保持清晰”的效果,可以设置 minVideoBitrate 为 videoBitrate 的 60; 如果您追求“允许模糊但要保持流畅”的效果,可以设置 minVideoBitrate 为 200kbps; 如果您将 videoBitrate 和 minVideoBitrate 设置为同一个值,等价于关闭 SDK 的自适应调节能力。

◆ minVideoBitrate

- (int) minVideoBitrate
readwritenonatomicassign

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

  • 如果您追求“允许卡顿但要保持清晰”的效果,可以设置 minVideoBitrate 为 videoBitrate 的 60;
  • 如果您追求“允许模糊但要保持流畅”的效果,可以设置 minVideoBitrate 为 200kbps;
  • 如果您将 videoBitrate 和 minVideoBitrate 设置为同一个值,等价于关闭 SDK 的自适应调节能力;
  • 默认值:0,此时最低码率由 SDK 根据分辨率情况,自动设置合适的数值。
    【特别说明】
  • 当您把分辨率设置的比较高时,minVideoBitrate 不适合设置的太低,否则会出现画面模糊和大范围的马赛克宏块。 比如把分辨率设置为 720p,把码率设置为 200kbps,那么编码出的画面将会出现大范围区域性马赛克。

◆ enableAdjustRes

- (BOOL) enableAdjustRes
readwritenonatomicassign

【字段含义】是否允许 SDK 动态调整分辨率,开启后会对云端录制产生影响。
【推荐取值】

  • 需要开启云端录制的场景建议设置为 NO,中途视频分辨率发生变化后,云端录制出的 MP4 在一般的播放器上都无法正常播放。
  • 视频通话模式,若无需云端录制,可以设置为 YES,此时 SDK 会根据当前待带宽情况自动选择合适的分辨率(仅针对 TRTCVideoStreamTypeBig 生效)。
  • 默认值:NO。
    【特别说明】如有云端录制需求,请设置为 NO。

◆ TRTCNetworkQosParam

class TRTCNetworkQosParam

属性

TRTCVideoQosPreference preference
 
TRTCQosControlMode controlMode
 

属性说明

◆ preference

- (TRTCVideoQosPreference) preference
readwritenonatomicassign

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

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

◆ controlMode

- (TRTCQosControlMode) controlMode
readwritenonatomicassign

【字段含义】视频分辨率(云端控制 - 客户端控制)
【推荐取值】云端控制
【特别说明】

  • Server 模式(默认):云端控制模式,若无特殊原因,请直接使用该模式
  • Client 模式:客户端控制模式,用于 SDK 开发内部调试,客户请勿使用

◆ 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
readwritenonatomicstrong

说话者的 userId, nil 为自己

◆ volume

- (NSUInteger) volume
readwritenonatomicassign

说话者的音量, 取值范围0 - 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

◆ sourceName

- (NSString*) sourceName
readwritenonatomiccopy

窗口名称

◆ extInfo

- (NSDictionary*) extInfo
readwritenonatomicstrong

窗口属性

◆ thumbnail

- (NSImage*) thumbnail
readnonatomicassign

窗口缩略图

◆ icon

- (NSImage*) icon
readnonatomicassign

窗口小图标

◆ TRTCSpeedTestResult

class TRTCSpeedTestResult

属性

NSString * ip
 
TRTCQuality quality
 
float upLostRate
 
float downLostRate
 
uint32_t rtt
 

属性说明

◆ ip

- (NSString*) ip
readwritenonatomicstrong

服务器 IP 地址

◆ quality

- (TRTCQuality) quality
readwritenonatomicassign

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

◆ 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

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

◆ TRTCVideoFrame

class TRTCVideoFrame

属性

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

属性说明

◆ pixelFormat

- (TRTCVideoPixelFormat) pixelFormat
readwritenonatomicassign

【字段含义】视频像素格式
【推荐取值】TRTCVideoPixelFormat_NV12

◆ bufferType

- (TRTCVideoBufferType) bufferType
readwritenonatomicassign

【字段含义】视频数据结构类型
【推荐取值】TRTCVideoBufferType_PixelBuffer

◆ pixelBuffer

- (CVPixelBufferRef) pixelBuffer
readwritenonatomicassign

【字段含义】bufferType 为 TRTCVideoBufferType_PixelBuffer 时的视频数据。

◆ data

- (NSData*) data
readwritenonatomicretain

【字段含义】bufferType 为 TRTCVideoBufferType_NSData 时的视频数据。

◆ timestamp

- (uint64_t) timestamp
readwritenonatomicassign

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

◆ width

- (uint32_t) width
readwritenonatomicassign

【字段含义】视频宽度
【推荐取值】自定义视频采集时不需要填写。

◆ height

- (uint32_t) height
readwritenonatomicassign

【字段含义】视频高度
【推荐取值】自定义视频采集时不需要填写。

◆ rotation

- (TRTCVideoRotation) rotation
readwritenonatomicassign

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

◆ TRTCAudioFrame

class TRTCAudioFrame

属性

NSData * data
 
TRTCAudioSampleRate sampleRate
 
int channels
 
uint64_t timestamp
 

属性说明

◆ data

- (NSData*) data
readwritenonatomicretain

音频数据

◆ sampleRate

- (TRTCAudioSampleRate) sampleRate
readwritenonatomicassign

采样率

◆ channels

- (int) channels
readwritenonatomicassign

声道数

◆ timestamp

- (uint64_t) timestamp
readwritenonatomicassign

时间戳,单位ms

◆ TRTCMixUser

class TRTCMixUser

属性

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

属性说明

◆ userId

- (NSString*) userId
readwritenonatomiccopy

参与混流的 userId

◆ roomID

- (NSString*) roomID
readwritenonatomiccopy

混流的房间, 可填 nil 表示是自己所在的房间

◆ rect

- (CGRect) rect
readwritenonatomicassign

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

◆ zOrder

- (int) zOrder
readwritenonatomicassign

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

◆ streamType

- (TRTCVideoStreamType) streamType
readwritenonatomicassign

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

◆ pureAudio

- (BOOL) pureAudio
readwritenonatomicassign

该用户是不是只开启了音频

◆ 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

【字段含义】转码config模式

◆ appId

- (int) appId
readwritenonatomicassign

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

◆ bizId

- (int) bizId
readwritenonatomicassign

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

◆ videoWidth

- (int) videoWidth
readwritenonatomicassign

【字段含义】最终转码后的视频分辨率的宽度。
【推荐取值】推荐值:360px ,如果你是纯音频推流,请将 width × height 设为 0px × 0px,否则混流后会携带一条画布背景的视频流。

◆ videoHeight

- (int) videoHeight
readwritenonatomicassign

【字段含义】最终转码后的视频分辨率的高度。
【推荐取值】推荐值:640px ,如果你是纯音频推流,请将 width × height 设为 0px × 0px,否则混流后会携带一条画布背景的视频流。

◆ videoBitrate

- (int) videoBitrate
readwritenonatomicassign

【字段含义】最终转码后的视频分辨率的码率(kbps)。
【推荐取值】如果填0,后台会根据videoWidth和videoHeight来估算码率,您也可以参考枚举定义TRTCVideoResolution_640_480的注释。

◆ videoFramerate

- (int) videoFramerate
readwritenonatomicassign

【字段含义】最终转码后的视频分辨率的帧率(FPS)。
【推荐取值】默认值:15fps,取值范围是 (0,30]。

◆ videoGOP

- (int) videoGOP
readwritenonatomicassign

【字段含义】最终转码后的视频分辨率的关键帧间隔(又称为 GOP)。
【推荐取值】默认值:2,单位为秒,取值范围是 [1,8]。

◆ backgroundColor

- (int) backgroundColor
readwritenonatomicassign

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

◆ backgroundImage

- (NSString*) backgroundImage
readwritenonatomiccopy

【字段含义】混合后画面的背景图。
【推荐取值】默认值:nil,即不设置背景图
【特别说明】背景图需要您事先在 “控制台 => 应用管理 => 功能配置 => 素材管理” 中上传, 上传成功后可以获得对应的“图片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

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

◆ streamId

- (NSString*) streamId
readwritenonatomiccopy

【字段含义】输出到 CDN 上的直播流 ID 如不设置该参数,SDK 会执行默认逻辑,即房间里的多路流会混合到该接口调用者的视频流上,也就是 A+B =>A; 如果设置该参数,SDK 会将房间里的多路流混合到您指定的直播流 ID 上,也就是 A+B =>C。
【推荐取值】默认值:nil,即房间里的多路流会混合到该接口调用者的视频流上。

◆ TRTCPublishCDNParam

class TRTCPublishCDNParam

属性

int appId
 
int bizId
 
NSString * url
 

属性说明

◆ appId

- (int) appId
readwritenonatomicassign

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

◆ bizId

- (int) bizId
readwritenonatomicassign

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

◆ url

- (NSString*) url
readwritenonatomicstrong

旁路转推的 URL

◆ TRTCAudioRecordingParams

class TRTCAudioRecordingParams

属性

NSString * filePath
 

属性说明

◆ filePath

- (NSString*) filePath
readwritenonatomicstrong

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

◆ TRTCAudioEffectParam

class TRTCAudioEffectParam

构造函数

(_Nonnull instancetype) - init
 
(_Nonnull instancetype) - initWith
 

类方法

(_Nonnull instancetype) + new
 

属性

int effectId
 
NSString * path
 
int loopCount
 
BOOL publish
 
int volume
 

函数文档

◆ new()

+ (_Nonnull instancetype) new

◆ init()

- (_Nonnull instancetype) init

◆ initWith()

- (_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。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 对应的验证签名,相当于登录密码。不填时,SDK 会继续使用旧的 userSig, 但用户必须保证旧的 userSig 仍在有效期内,否则会造成进房失败等后果。
【推荐取值】具体计算方法请参见 如何计算UserSig

◆ privateMapKey

- (NSString*) privateMapKey
readwritenonatomiccopy

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

◆ TRTCLocalStatistics

class TRTCLocalStatistics

属性

uint32_t width
 
uint32_t height
 
uint32_t frameRate
 
uint32_t videoBitrate
 
uint32_t audioSampleRate
 
uint32_t audioBitrate
 
TRTCVideoStreamType streamType
 

属性说明

◆ width

- (uint32_t) width
readwritenonatomicassign

视频宽度

◆ height

- (uint32_t) height
readwritenonatomicassign

视频高度

◆ frameRate

- (uint32_t) frameRate
readwritenonatomicassign

帧率(fps)

◆ videoBitrate

- (uint32_t) videoBitrate
readwritenonatomicassign

视频发送码率(Kbps)

◆ audioSampleRate

- (uint32_t) audioSampleRate
readwritenonatomicassign

音频采样率(Hz)

◆ audioBitrate

- (uint32_t) audioBitrate
readwritenonatomicassign

音频发送码率(Kbps)

◆ streamType

- (TRTCVideoStreamType) streamType
readwritenonatomicassign

流类型(大画面 | 小画面 | 辅路画面)

◆ TRTCRemoteStatistics

class TRTCRemoteStatistics

属性

NSString * userId
 
uint32_t finalLoss
 
uint32_t width
 
uint32_t height
 
uint32_t frameRate
 
uint32_t videoBitrate
 
uint32_t audioSampleRate
 
uint32_t audioBitrate
 
uint32_t jitterBufferDelay
 
uint32_t audioTotalBlockTime
 
uint32_t audioBlockRate
 
TRTCVideoStreamType streamType
 

属性说明

◆ userId

- (NSString*) userId
readwritenonatomicretain

用户 ID,指定是哪个用户的视频流

◆ finalLoss

- (uint32_t) finalLoss
readwritenonatomicassign

该线路的总丢包率(%)

这个值越小越好,例如,丢包率为0表示网络很好。 丢包率是该线路的 userId 从上行到服务器再到下行的总丢包率。 如果 downLoss 为0,但是 finalLoss 不为0,说明该 userId 上行时出现了无法恢复的丢包。

◆ width

- (uint32_t) width
readwritenonatomicassign

视频宽度

◆ height

- (uint32_t) height
readwritenonatomicassign

视频高度

◆ frameRate

- (uint32_t) frameRate
readwritenonatomicassign

接收帧率(fps)

◆ videoBitrate

- (uint32_t) videoBitrate
readwritenonatomicassign

视频码率(Kbps)

◆ audioSampleRate

- (uint32_t) audioSampleRate
readwritenonatomicassign

音频采样率(Hz)

◆ audioBitrate

- (uint32_t) audioBitrate
readwritenonatomicassign

音频码率(Kbps)

◆ jitterBufferDelay

- (uint32_t) jitterBufferDelay
readwritenonatomicassign

播放时延(ms)

◆ audioTotalBlockTime

- (uint32_t) audioTotalBlockTime
readwritenonatomicassign

音频总播放卡顿累计时长(ms)

◆ audioBlockRate

- (uint32_t) audioBlockRate
readwritenonatomicassign

音频播放卡顿率,音频卡顿的累计时长占音频总有效时长的百分比 (%)

◆ streamType

- (TRTCVideoStreamType) streamType
readwritenonatomicassign

流类型(大画面 | 小画面 | 辅路画面)

◆ TRTCStatistics

class TRTCStatistics

属性

uint32_t upLoss
 
uint32_t downLoss
 
uint32_t appCpu
 
uint32_t systemCpu
 
uint32_t rtt
 
uint64_t receivedBytes
 
uint64_t sentBytes
 
NSArray< TRTCLocalStatistics * > * localStatistics
 
NSArray< TRTCRemoteStatistics * > * remoteStatistics
 

属性说明

◆ upLoss

- (uint32_t) upLoss
readwritenonatomicassign

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

◆ downLoss

- (uint32_t) downLoss
readwritenonatomicassign

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

◆ appCpu

- (uint32_t) appCpu
readwritenonatomicassign

当前 App 的 CPU 使用率(%)

◆ systemCpu

- (uint32_t) systemCpu
readwritenonatomicassign

当前系统的 CPU 使用率(%)

◆ rtt

- (uint32_t) rtt
readwritenonatomicassign

延迟(毫秒), 指 SDK 到腾讯云服务器的一次网络往返时间,该值越小越好。 一般低于50ms的 rtt 相对理想,而高于100ms的 rtt 会引入较大的通话延时。 由于数据上下行共享一条网络连接,所以 local 和 remote 的 rtt 相同。

◆ receivedBytes

- (uint64_t) receivedBytes
readwritenonatomicassign

总接收字节数(包含信令及音视频)

◆ sentBytes

- (uint64_t) sentBytes
readwritenonatomicassign

总发送字节数(包含信令及音视频)

◆ localStatistics

- (NSArray<TRTCLocalStatistics*>*) localStatistics
readwritenonatomicstrong

自己本地的音视频统计信息,可能有主画面、小画面以及辅路画面等多路的情况,因此是一个数组

◆ remoteStatistics

- (NSArray<TRTCRemoteStatistics*>*) remoteStatistics
readwritenonatomicstrong

远端成员的音视频统计信息,可能有主画面、小画面以及辅路画面等多路的情况,因此是一个数组

类型定义说明

◆ TRTCMediaDeviceInfo

媒体设备描述

弃用:
在 Mac 上,每一种类型的设备都可能有多个,TRTC SDK 的 Mac 版本提供了一系列函数用来操作这些设备。

枚举类型说明

◆ TRTCVideoResolution

enum TRTCVideoResolution : NSInteger

视频分辨率

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

枚举值
TRTCVideoResolution_120_120 

[C] 建议码率 VideoCall:80kbps LIVE:120kbps

TRTCVideoResolution_160_160 

[C] 建议码率 VideoCall:100kbps LIVE:150kbps

TRTCVideoResolution_270_270 

[C] 建议码率 VideoCall:200kbps LIVE:120kbps

TRTCVideoResolution_480_480 

[C] 建议码率 VideoCall:350kbps LIVE:120kbps

TRTCVideoResolution_160_120 

[C] 建议码率 VideoCall:100kbps LIVE:150kbps

TRTCVideoResolution_240_180 

[C] 建议码率 VideoCall:150kbps LIVE:225kbps

TRTCVideoResolution_280_210 

[C] 建议码率 VideoCall:200kbps LIVE:300kbps

TRTCVideoResolution_320_240 

[C] 建议码率 VideoCall:250kbps LIVE:375kbps

TRTCVideoResolution_400_300 

[C] 建议码率 VideoCall:300kbps LIVE:450kbps

TRTCVideoResolution_480_360 

[C] 建议码率 VideoCall:400kbps LIVE:600kbps

TRTCVideoResolution_640_480 

[C] 建议码率 VideoCall:600kbps LIVE:900kbps

TRTCVideoResolution_960_720 

[C] 建议码率 VideoCall:1000kbps LIVE:1500kbps

TRTCVideoResolution_160_90 

[C] 建议码率 VideoCall:150kbps LIVE:250kbps

TRTCVideoResolution_256_144 

[C] 建议码率 VideoCall:200kbps LIVE:300kbps

TRTCVideoResolution_320_180 

[C] 建议码率 VideoCall:250kbps LIVE:400kbps

TRTCVideoResolution_480_270 

[C] 建议码率 VideoCall:350kbps LIVE:550kbps

TRTCVideoResolution_640_360 

[C] 建议码率 VideoCall:550kbps LIVE:900kbps

TRTCVideoResolution_960_540 

[C] 建议码率 VideoCall:850kbps LIVE:1300kbps

TRTCVideoResolution_1280_720 

[C] 建议码率 VideoCall:1200kbps LIVE:1800kbps

TRTCVideoResolution_1920_1080 

[S] 建议码率 VideoCall:2000kbps LIVE:3000kbps

◆ TRTCVideoResolutionMode

enum TRTCVideoResolutionMode : NSInteger

视频宽高比模式

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

横屏分辨率

TRTCVideoResolutionModePortrait 

竖屏分辨率

◆ TRTCVideoStreamType

enum TRTCVideoStreamType : NSInteger

视频流类型

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

  • 主画面:最常用的一条线路,一般用来传输摄像头的视频数据。
  • 小画面:跟主画面的内容相同,但是分辨率和码率更低。
  • 辅流画面:一般用于屏幕分享,以及远程播片(例如老师放一段视频给学生)。
注意
- 如果主播的上行网络和性能比较好,则可以同时送出大小两路画面。
- SDK 不支持单独开启小画面,小画面必须依附于主画面而存在。
枚举值
TRTCVideoStreamTypeBig 

主画面视频流

TRTCVideoStreamTypeSmall 

小画面视频流

TRTCVideoStreamTypeSub 

辅流(屏幕分享)

◆ TRTCQuality

enum TRTCQuality : NSInteger

画质级别

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

枚举值
TRTCQuality_Unknown 

未定义

TRTCQuality_Excellent 

最好

TRTCQuality_Good 

TRTCQuality_Poor 

一般

TRTCQuality_Bad 

TRTCQuality_Vbad 

很差

TRTCQuality_Down 

不可用

◆ TRTCVideoFillMode

enum TRTCVideoFillMode : NSInteger

视频画面填充模式

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

  • TRTCVideoFillMode_Fill,图像铺满屏幕,超出显示视窗的视频部分将被裁剪,画面显示可能不完整。
  • TRTCVideoFillMode_Fit,图像长边填满屏幕,短边区域会被填充黑色,画面的内容完整。
枚举值
TRTCVideoFillMode_Fill 

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

TRTCVideoFillMode_Fit 

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

◆ TRTCVideoRotation

enum TRTCVideoRotation : NSInteger

视频画面旋转方向

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

枚举值
TRTCVideoRotation_0 

不旋转

TRTCVideoRotation_90 

顺时针旋转90度

TRTCVideoRotation_180 

顺时针旋转180度

TRTCVideoRotation_270 

顺时针旋转270度

◆ TRTCBeautyStyle

enum TRTCBeautyStyle : NSInteger

美颜(磨皮)算法

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

枚举值
TRTCBeautyStyleSmooth 

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

TRTCBeautyStyleNature 

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

TRTCBeautyStylePitu 

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

◆ TRTCVideoPixelFormat

enum TRTCVideoPixelFormat : NSInteger

视频像素格式

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

枚举值
TRTCVideoPixelFormat_Unknown 

未知

TRTCVideoPixelFormat_I420 

YUV420P I420

TRTCVideoPixelFormat_NV12 

YUV420SP NV12

TRTCVideoPixelFormat_32BGRA 

BGRA8888

◆ TRTCVideoBufferType

enum TRTCVideoBufferType : NSInteger

视频数据包装格式

在自定义采集和自定义渲染功能,您需要用到下列枚举值来指定您希望以什么类型的容器来包装视频数据。

  • PixelBuffer:直接使用效率最高,iOS 系统提供了众多 API 获取或处理 PixelBuffer。
  • NSData:仅用于自定义渲染,SDK 帮您做了一次 PixelBuffer 到 NSData 的内存拷贝工作,会有一定的性能消耗。
枚举值
TRTCVideoBufferType_Unknown 

未知

TRTCVideoBufferType_PixelBuffer 

直接使用效率最高,iOS 系统提供了众多 API 获取或处理 PixelBuffer。

TRTCVideoBufferType_NSData 

仅用于自定义渲染,SDK 帮您做了一次 PixelBuffer 到 NSData 的内存拷贝工作,会有一定的性能消耗。

◆ TRTCVideoMirrorType

enum TRTCVideoMirrorType : NSUInteger

本地视频预览镜像类型

iOS 的本地画面提供下列设置模式

枚举值
TRTCVideoMirrorTypeAuto 

前置摄像头镜像,后置摄像头不镜像

TRTCVideoMirrorTypeEnable 

前后置摄像头画面均镜像

TRTCVideoMirrorTypeDisable 

前后置摄像头画面均不镜像

◆ TRTCAppScene

enum TRTCAppScene : NSInteger

应用场景

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]、[视频相亲房]、[互动课堂]、[远程培训]、[超大型会议]等。
注意:此场景下,您必须通过 TRTCParams 中的 role 字段指定当前用户的角色。

TRTCAppSceneAudioCall 

语音通话场景,支持 48kHz,支持双声道。单个房间最多支持300人同时在线,最高支持50人同时发言。
适合:[1对1语音通话]、[300人语音会议]、[语音聊天]、[语音会议]、[在线狼人杀]等。

TRTCAppSceneVoiceChatRoom 

语音互动直播,支持平滑上下麦,切换过程无需等待,主播延时小于300ms;支持十万级别观众同时播放,播放延时低至1000ms。
适合:[语音低延时直播]、[语音直播连麦]、[语聊房]、[K 歌房]、[FM 电台]等。
注意:此场景下,您必须通过 TRTCParams 中的 role 字段指定当前用户的角色。

◆ TRTCRoleType

enum TRTCRoleType : NSInteger

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

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

  • Anchor:主播,可以上行视频和音频,一个房间里最多支持50个主播同时上行音视频。
  • Audience:观众,只能观看,不能上行视频和音频,一个房间里的观众人数没有上限。
枚举值
TRTCRoleAnchor 

主播

TRTCRoleAudience 

观众

◆ TRTCQosControlMode

enum TRTCQosControlMode : NSInteger

流控模式

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

  • ModeServer:云端控制,默认模式,推荐选择。
  • ModeClient:本地控制,用于 SDK 开发内部调试,客户请勿使用。
注意
推荐您使用云端控制,这样每当我们升级 Qos 算法时,您无需升级 SDK 即可体验更好的效果。
枚举值
TRTCQosControlModeClient 

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

TRTCQosControlModeServer 

云端控制 (默认)

◆ TRTCVideoQosPreference

enum TRTCVideoQosPreference : NSInteger

画质偏好

指当 TRTC SDK 在遇到弱网络环境时,您期望“保清晰”或“保流畅”,两种模式均会优先保障声音数据的传输。

  • Smooth:弱网下优先流畅性,当用户网络较差的时候画面也会比较模糊。
  • Clear:默认值,弱网下优先清晰度,当用户网络较差的时候会出现卡顿,但画面清晰度不会大幅缩水。
枚举值
TRTCVideoQosPreferenceSmooth 

弱网下保流畅

TRTCVideoQosPreferenceClear 

弱网下保清晰,默认值

◆ TRTCAudioSampleRate

enum TRTCAudioSampleRate : NSInteger

音频采样率

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

枚举值
TRTCAudioSampleRate16000 

16k采样率

TRTCAudioSampleRate32000 

32采样率

TRTCAudioSampleRate44100 

44.1k采样率

TRTCAudioSampleRate48000 

48k采样率

◆ TRTCAudioQuality

enum TRTCAudioQuality : NSInteger

声音音质

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

枚举值
TRTCAudioQualitySpeech 

流畅音质:采样率:16k;单声道;音频裸码率:16kbps;适合语音通话为主的场景,比如在线会议,语音通话。

TRTCAudioQualityDefault 

默认音质:采样率:48k;单声道;音频裸码率:50kbps;SDK 默认的音频质量,如无特殊需求推荐选择之。

TRTCAudioQualityMusic 

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

◆ TRTCAudioRoute

enum TRTCAudioRoute : NSInteger

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

微信和手机 QQ 里的视频通话功能,都有一个免提模式,开启后就不用把手机贴在耳朵上,这个功能就是基于音频路由实现的。 一般手机都有两个扬声器,设置音频路由的作用就是要决定声音从哪个扬声器播放出来:

  • Speakerphone:扬声器,位于手机底部,声音偏大,适合外放音乐。
  • Earpiece:听筒,位于手机顶部,声音偏小,适合通话。
枚举值
TRTCAudioModeSpeakerphone 

扬声器

TRTCAudioModeEarpiece 

听筒

◆ 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)功能,SDK 会开启内置的声学处理算法对声音进行二次处理。 在媒体音量模式下,蓝牙耳机无法使用自带的麦克风采集声音,只能使用手机上的麦克风进行声音采集。

SDK 目前提供了三种系统音量类型的控制模式,分别为:

  • Auto:“麦上通话,麦下媒体”,即主播上麦时使用通话音量,观众不上麦则使用媒体音量,适合在线直播场景。 如果您在 enterRoom 时选择的场景为 TRTCAppSceneLIVE 或 TRTCAppSceneVoiceChatRoom,SDK 会自动选择该模式。
  • VOIP:全程使用通话音量,适合多人会议场景。 如果您在 enterRoom 时选择的场景为 TRTCAppSceneVideoCall 或 TRTCAppSceneAudioCall,SDK 会自动选择该模式。
  • Media:通话全程使用媒体音量,不常用,适合个别有特殊需求(如主播外接声卡)的应用场景。
枚举值
TRTCSystemVolumeTypeAuto 

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

TRTCSystemVolumeTypeMedia 

通话全程使用媒体音量,不常用,适合个别有特殊需求(如主播外接声卡)的应用场景。

TRTCSystemVolumeTypeVOIP 

全程使用通话音量,适合多人会议场景。
如果您在 enterRoom 时选择的场景为 TRTCAppSceneVideoCall 或 TRTCAppSceneAudioCall 会自动选择该模式。

◆ 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

重力感应开关

此配置仅适用于 iOS 和 iPad 等移动设备:

  • Disable:Mac 平台的默认值,视频上行的画面(也就是房间里的其它用户看到的当前用户的画面)不会跟随重力感应方向而自动调整。
  • UIAutoLayout:iPhone 和 iPad 平台的默认值,视频上行的画面(也就是房间里的其它用户看到的当前用户的画面)会跟随当前界面的状态栏方向而自动调整。
  • UIFixLayout:待废弃,效果等同于 UIAutoLayout。
枚举值
TRTCGSensorMode_Disable 

关闭重力感应,Mac 平台的默认值。

TRTCGSensorMode_UIAutoLayout 

开启重力感应,iPhone 和 iPad 平台的默认值。

TRTCGSensorMode_UIFixLayout 

待废弃,效果等同于 UIAutoLayout。

◆ TRTCScreenCaptureSourceType

enum TRTCScreenCaptureSourceType : NSInteger

屏幕分享目标类型(仅 Mac)

该枚举值主要用于 SDK 区分屏幕分享的目标(某一个窗口或整个屏幕)。

枚举值
TRTCScreenCaptureSourceTypeUnknown 

未定义

TRTCScreenCaptureSourceTypeWindow 

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

TRTCScreenCaptureSourceTypeScreen 

该分享目标是整个Mac桌面

◆ TRTCTranscodingConfigMode

enum TRTCTranscodingConfigMode : NSInteger

混流参数配置模式

枚举值
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) 三种分辨率中的一种。

◆ TRTCLocalVideoMirrorType

enum TRTCLocalVideoMirrorType : NSUInteger
枚举值
TRTCLocalVideoMirrorType_Auto 
TRTCLocalVideoMirrorType_Enable 
TRTCLocalVideoMirrorType_Disable 

◆ TRTCMediaDeviceType

enum TRTCMediaDeviceType : NSInteger

设备类型(仅 Mac)

弃用:
在 Mac 上,每一种类型的设备都可能有多个,TRTC SDK 的 Mac 版本提供了一系列函数用来操作这些设备。
枚举值
TRTCMediaDeviceTypeUnknown 

未定义

TRTCMediaDeviceTypeAudioInput 

麦克风

TRTCMediaDeviceTypeAudioOutput 

扬声器或听筒

TRTCMediaDeviceTypeVideoCamera 

摄像头

TRTCMediaDeviceTypeVideoWindow 

某个窗口(用于屏幕分享)

TRTCMediaDeviceTypeVideoScreen 

整个屏幕(用于屏幕分享)