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

详细描述

腾讯云视频通话功能的主要接口类


结构体说明

◆ TRTCCloud

class TRTCCloud

构造函数

(instancetype) - init
 

类方法

(instancetype) + new
 

创建与销毁

id< TRTCCloudDelegatedelegate
 
dispatch_queue_t delegateQueue
 
(instancetype) + sharedInstance
 
(void) + destroySharedIntance
 

房间相关接口函数

(void) - enterRoom
 
(void) - exitRoom
 
(void) - switchRole
 
(void) - connectOtherRoom
 
(void) - disconnectOtherRoom
 
(void) - setDefaultStreamRecvMode
 
(TRTCCloud *) - createSubCloud
 
(void) - destroySubCloud
 

CDN 相关接口函数

(void) - startPublishing
 
(void) - stopPublishing
 
(void) - startPublishCDNStream
 
(void) - stopPublishCDNStream
 
(void) - setMixTranscodingConfig
 

视频相关接口函数

(void) - startLocalPreview
 
(void) - startLocalPreview
 
(void) - updateLocalView
 
(void) - stopLocalPreview
 
(void) - muteLocalVideo
 
(void) - startRemoteView
 
(void) - updateRemoteView
 
(void) - stopRemoteView
 
(void) - stopAllRemoteView
 
(void) - muteRemoteVideoStream
 
(void) - muteAllRemoteVideoStreams
 
(void) - setVideoEncoderParam
 
(void) - setNetworkQosParam
 
(void) - setLocalViewFillMode
 
(void) - setRemoteViewFillMode
 
(void) - setLocalViewRotation
 
(void) - setRemoteViewRotation
 
(void) - setVideoEncoderRotation
 
(void) - setLocalViewMirror
 
(void) - setLocalViewMirror
 
(void) - setVideoEncoderMirror
 
(void) - setGSensorMode
 
(int) - enableEncSmallVideoStream
 
(void) - setRemoteVideoStreamType
 
(void) - setPriorRemoteVideoStreamType
 
(void) - snapshotVideo
 

音频相关接口函数

(void) - setAudioQuality
 
(void) - startLocalAudio
 
(void) - stopLocalAudio
 
(void) - muteLocalAudio
 
(void) - setAudioRoute
 
(void) - muteRemoteAudio
 
(void) - muteAllRemoteAudio
 
(void) - setRemoteAudioVolume
 
(void) - setAudioCaptureVolume
 
(NSInteger) - getAudioCaptureVolume
 
(void) - setAudioPlayoutVolume
 
(NSInteger) - getAudioPlayoutVolume
 
(void) - enableAudioVolumeEvaluation
 
(int) - startAudioRecording
 
(void) - stopAudioRecording
 
(void) - setSystemVolumeType
 

摄像头相关接口函数

(void) - switchCamera
 
(BOOL) - isCameraZoomSupported
 
(void) - setZoom
 
(BOOL) - isCameraTorchSupported
 
(BOOL) - enbaleTorch
 
(BOOL) - isCameraFocusPositionInPreviewSupported
 
(void) - setFocusPosition
 
(BOOL) - isCameraAutoFocusFaceModeSupported
 
(void) - enableAutoFaceFoucs
 
(NSArray< TRTCMediaDeviceInfo * > *) - getCameraDevicesList
 
(TRTCMediaDeviceInfo *) - getCurrentCameraDevice
 
(int) - setCurrentCameraDevice
 

音频设备相关接口函数

(NSArray< TRTCMediaDeviceInfo * > *) - getMicDevicesList
 
(TRTCMediaDeviceInfo *) - getCurrentMicDevice
 
(int) - setCurrentMicDevice
 
(float) - getCurrentMicDeviceVolume
 
(void) - setCurrentMicDeviceVolume
 
(void) - setCurrentMicDeviceMute
 
(BOOL) - getCurrentMicDeviceMute
 
(NSArray< TRTCMediaDeviceInfo * > *) - getSpeakerDevicesList
 
(TRTCMediaDeviceInfo *) - getCurrentSpeakerDevice
 
(int) - setCurrentSpeakerDevice
 
(float) - getCurrentSpeakerDeviceVolume
 
(int) - setCurrentSpeakerDeviceVolume
 
(void) - setCurrentSpeakerDeviceMute
 
(BOOL) - getCurrentSpeakerDeviceMute
 

美颜特效和变脸特效

(TXBeautyManager *) - getBeautyManager
 
(void) - setWatermark
 

音乐特效和人声特效

(TXAudioEffectManager *) - getAudioEffectManager
 

屏幕分享相关接口函数

(void) - startScreenCaptureInApp
 
(void) - startScreenCaptureByReplaykit
 
(void) - startScreenCapture
 
(int) - stopScreenCapture
 
(int) - pauseScreenCapture
 
(int) - resumeScreenCapture
 
(NSArray< TRTCScreenCaptureSourceInfo * > *) - getScreenCaptureSourcesWithThumbnailSize
 
(void) - selectScreenCaptureTarget
 
(void) - startRemoteSubStreamView
 
(void) - stopRemoteSubStreamView
 
(void) - setRemoteSubStreamViewFillMode
 
(void) - setRemoteSubStreamViewRotation
 
(void) - setSubStreamEncoderParam
 
(void) - setSubStreamMixVolume
 

自定义采集和渲染

(void) - enableCustomVideoCapture
 
(void) - sendCustomVideoData
 
(int) - setLocalVideoRenderDelegate
 
(int) - setRemoteVideoRenderDelegate
 
(void) - enableCustomAudioCapture
 
(void) - sendCustomAudioData
 
(void) - setAudioFrameDelegate
 

自定义消息发送

(BOOL) - sendCustomCmdMsg
 
(BOOL) - sendSEIMsg
 

设备和网络测试

(void) - startSpeedTest
 
(void) - stopSpeedTest
 
(void) - startCameraDeviceTestInView
 
(void) - stopCameraDeviceTest
 
(void) - startMicDeviceTest
 
(void) - stopMicDeviceTest
 
(void) - startSpeakerDeviceTest
 
(void) - stopSpeakerDeviceTest
 

Log 相关接口函数

(NSString *) + getSDKVersion
 
(void) + setLogLevel
 
(void) + setConsoleEnabled
 
(void) + setLogCompressEnabled
 
(void) + setLogDirPath
 
(void) + setLogDelegate
 
(void) - showDebugView
 
(void) - setDebugViewMargin
 
(void) - callExperimentalAPI
 

弃用接口(建议使用对应的新接口)

(void) - setMicVolumeOnMixing
 
(void) - setBeautyStyle
 
(void) - setEyeScaleLevel
 
(void) - setFaceScaleLevel
 
(void) - setFaceVLevel
 
(void) - setChinLevel
 
(void) - setFaceShortLevel
 
(void) - setNoseSlimLevel
 
(void) - selectMotionTmpl
 
(void) - setMotionMute
 
(void) - startScreenCapture
 
(void) - setFilter
 
(void) - setFilterConcentration
 
(void) - setGreenScreenFile
 
(void) - playBGM
 
(void) - stopBGM
 
(void) - pauseBGM
 
(void) - resumeBGM
 
(NSInteger) - getBGMDuration
 
(int) - setBGMPosition
 
(void) - setBGMVolume
 
(void) - setBGMPlayoutVolume
 
(void) - setBGMPublishVolume
 
(void) - setReverbType
 
(void) - setVoiceChangerType
 
(void) - playAudioEffect
 
(void) - setAudioEffectVolume
 
(void) - stopAudioEffect
 
(void) - stopAllAudioEffects
 
(void) - setAllAudioEffectsVolume
 
(void) - pauseAudioEffect
 
(void) - resumeAudioEffect
 
(void) - enableAudioEarMonitoring
 

函数文档

◆ new()

+ (instancetype) new

◆ init()

- (instancetype) init

◆ sharedInstance()

+ (instancetype) sharedInstance

创建 TRTCCloud 单例

◆ destroySharedIntance()

+ (void) destroySharedIntance

销毁 TRTCCloud 单例

◆ enterRoom()

- (void) enterRoom: (TRTCParams *)  param
appScene: (TRTCAppScene scene 

进入房间

调用接口后,您会收到来自 TRTCCloudDelegate 中的 onEnterRoom(result) 回调:

  • 如果加入成功,result 会是一个正数(result > 0),表示加入房间的时间消耗,单位是毫秒(ms)。
  • 如果加入失败,result 会是一个负数(result < 0),表示进房失败的错误码。

进房失败的错误码含义请参见错误码

  • TRTCAppSceneVideoCall
    视频通话场景,支持720P、1080P高清画质,单个房间最多支持300人同时在线,最高支持50人同时发言。
    适合:[1对1视频通话]、[300人视频会议]、[在线问诊]、[远程面试]等。
  • TRTCAppSceneAudioCall
    语音通话场景,支持 48kHz,支持双声道。单个房间最多支持300人同时在线,最高支持50人同时发言。
    适合:[1对1语音通话]、[300人语音会议]、[在线狼人杀]、[语音聊天室]等。
  • TRTCAppSceneLIVE
    视频互动直播,支持平滑上下麦,切换过程无需等待,主播延时小于300ms;支持十万级别观众同时播放,播放延时低至1000ms。
    适合:[在线互动课堂]、[互动直播]、[视频相亲]、[远程培训]、[超大型会议]等。
  • TRTCAppSceneVoiceChatRoom
    语音互动直播,支持平滑上下麦,切换过程无需等待,主播延时小于300ms;支持十万级别观众同时播放,播放延时低至1000ms。
    适合:[语聊房]、[K 歌房]、[FM 电台]等。
参数
param进房参数,请参考 TRTCParams
scene应用场景,目前支持视频通话(VideoCall)、在线直播(Live)、语音通话(AudioCall)、语音聊天室(VoiceChatRoom)四种场景。
注意
  1. 当 scene 选择为 TRTCAppSceneLIVE 或 TRTCAppSceneVoiceChatRoom 时,您必须通过 TRTCParams 中的 role 字段指定当前用户的角色。
  2. 不管进房是否成功,enterRoom 都必须与 exitRoom 配对使用,在调用 exitRoom 前再次调用 enterRoom 函数会导致不可预期的错误问题。

◆ exitRoom()

- (void) exitRoom

离开房间

调用 exitRoom() 接口会执行退出房间的相关逻辑,例如释放音视频设备资源和编解码器资源等。 待资源释放完毕,SDK 会通过 TRTCCloudDelegate 中的 onExitRoom() 回调通知到您。

如果您要再次调用 enterRoom() 或者切换到其他的音视频 SDK,请等待 onExitRoom() 回调到来之后再执行相关操作。 否则可能会遇到摄像头或麦克风(例如 iOS 里的 AudioSession)被占用等各种异常问题。

◆ switchRole()

- (void) switchRole: (TRTCRoleType role

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

在直播场景下,一个用户可能需要在“观众”和“主播”之间来回切换。 您可以在进房前通过 TRTCParams 中的 role 字段确定角色,也可以通过 switchRole 在进房后切换角色。

参数
role目标角色,默认为主播:
  • TRTCRoleAnchor 主播,可以上行视频和音频,一个房间里最多支持50个主播同时上行音视频。
  • TRTCRoleAudience 观众,只能观看,不能上行视频和音频,一个房间里的观众人数没有上限。

◆ connectOtherRoom()

- (void) connectOtherRoom: (NSString *)  param

请求跨房通话(主播 PK)

TRTC 中两个不同音视频房间中的主播,可以通过“跨房通话”功能拉通连麦通话功能。使用此功能时, 两个主播无需退出各自原来的直播间即可进行“连麦 PK”。

例如:当房间“001”中的主播 A 通过 connectOtherRoom() 跟房间“002”中的主播 B 拉通跨房通话后, 房间“001”中的用户都会收到主播 B 的 onUserEnter(B) 回调和 onUserVideoAvailable(B,YES) 回调。 房间“002”中的用户都会收到主播 A 的 onUserEnter(A) 回调和 onUserVideoAvailable(A,YES) 回调。

简言之,跨房通话的本质,就是把两个不同房间中的主播相互分享,让每个房间里的观众都能看到两个主播。

                房间 001                     房间 002
              -------------               ------------
 跨房通话前:| 主播 A      |             | 主播 B     |
             | 观众 U V W  |             | 观众 X Y Z |
              -------------               ------------
                房间 001                     房间 002
              -------------               ------------
 跨房通话后:| 主播 A B    |             | 主播 B A   |
             | 观众 U V W  |             | 观众 X Y Z |
              -------------               ------------

跨房通话的参数考虑到后续扩展字段的兼容性问题,暂时采用了 JSON 格式的参数,要求至少包含两个字段:

  • roomId:房间“001”中的主播 A 要跟房间“002”中的主播 B 连麦,主播 A 调用 connectOtherRoom() 时 roomId 应指定为“002”。
  • userId:房间“001”中的主播 A 要跟房间“002”中的主播 B 连麦,主播 A 调用 connectOtherRoom() 时 userId 应指定为 B 的 userId。

跨房通话的请求结果会通过 TRTCCloudDelegate 中的 onConnectOtherRoom() 回调通知给您。

  NSMutableDictionary * jsonDict = [[NSMutableDictionary alloc] init];
  [jsonDict setObject:@(002) forKey:"roomId"];
  [jsonDict setObject:@"userB" forKey:@"userId"];
  NSData* jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:NSJSONWritingPrettyPrinted error:nil];
  NSString* jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
  [trtc connectOtherRoom:jsonString];
参数
paramJSON 字符串连麦参数,roomId 代表目标房间号,userId 代表目标用户 ID。

◆ disconnectOtherRoom()

- (void) disconnectOtherRoom

退出跨房通话

跨房通话的退出结果会通过 TRTCCloudDelegate 中的 onDisconnectOtherRoom() 回调通知给您。

◆ setDefaultStreamRecvMode()

- (void) setDefaultStreamRecvMode: (BOOL)  autoRecvAudio
video: (BOOL)  autoRecvVideo 

设置音视频数据接收模式,需要在进房前设置才能生效

为实现进房秒开的绝佳体验,SDK 默认进房后自动接收音视频。即在您进房成功的同时,您将立刻收到远端所有用户的音视频数据。 若您没有调用 startRemoteView,视频数据将自动超时取消。 若您主要用于语音聊天等没有自动接收视频数据需求的场景,您可以根据实际需求选择接收模式。

参数
autoRecvAudioYES:自动接收音频数据;NO:需要调用 muteRemoteAudio 进行请求或取消。默认值:YES
autoRecvVideoYES:自动接收视频数据;NO:需要调用 startRemoteView/stopRemoteView 进行请求或取消。默认值:YES
注意
需要在进房前设置才能生效。

◆ createSubCloud()

- (TRTCCloud *) createSubCloud

创建子 TRTCCloud 实例

子 TRTCCloud 实例用于进入其他房间,观看其他房间主播的音视频流,还可以在不同的房间之间切换推送音视频流。

此接口主要应用于类似超级小班课这种需要进入多个房间推拉流的场景。

  TRTCCloud *mainCloud = [TRTCCloud sharedInstance];
  // 1、mainCloud 进房并开始推送音视频流。
  // 2、创建子 TRTCCloud 实例并进入其他房间。
  TRTCCloud *subCloud = [mainCloud createSubCloud];
  [subCloud enterRoom:params appScene:scene)];
  // 3、切换房间推送音视频流。
  // 3.1、mainCloud 停止推送音视频流。
  [mainCloud switchRole:TRTCRoleAudience];
  [mainCloud muteLocalVideo:true];
  [mainCloud muteLocalAudio:true];
  // 3.2、subCLoud 推送音视频流。
  [subCloud switchRole:TRTCRoleAnchor];
  [subCloud muteLocalVideo:false];
  [subCloud muteLocalAudio:false];
  // 4、subCLoud 退房。
  [subCloud exitRoom];
  // 5、销毁 subCLoud。
  [mainCloud destroySubCloud:subCloud];
返回
子 TRTCCloud 实例
注意
  • 同一个用户,可以使用同一个 userId 进入多个不同 roomId 的房间。
  • 两台手机不可以同时使用同一个 userId 进入同一个 roomId 的房间。
  • 通过 createSubCloud 接口创建出来的子房间 TRTCCloud 实例有一个能力限制:不能调用子实例中与本地音视频 相关的接口(除了 switchRole、muteLocalVideo 和 muteLocalAudio 之外), 设置美颜等接口请使用 原 TRTCCloud 实例对象。
  • 同一个用户,同时只能在一个 TRTCCloud 实例中推流,在不同房间同时推流会引发云端的状态混乱,导致各种 bug。

◆ destroySubCloud()

- (void) destroySubCloud: (TRTCCloud *)  subCloud

销毁子 TRTCCloud 实例

◆ startPublishing()

- (void) startPublishing: (NSString *)  streamId
type: (TRTCVideoStreamType type 

开始向腾讯云的直播 CDN 推流

该接口会指定当前用户的音视频流在腾讯云 CDN 所对应的 StreamId,进而可以指定当前用户的 CDN 播放地址。

例如:如果我们采用如下代码设置当前用户的主画面 StreamId 为 user_stream_001,那么该用户主画面对应的 CDN 播放地址为: “http://yourdomain/live/user_stream_001.flv”,其中 yourdomain 为您自己备案的播放域名, 您可以在直播控制台 配置您的播放域名,腾讯云不提供默认的播放域名。

 TRTCCloud *trtcCloud = [TRTCCloud sharedInstance];
 [trtcCloud enterRoom:params appScene:TRTCAppSceneLIVE];
 [trtcCloud startLocalPreview:frontCamera view:localView];
 [trtcCloud startLocalAudio];
 [trtcCloud startPublishing: "user_stream_001" type:TRTCVideoStreamTypeBig];

您也可以在设置 enterRoom 的参数 TRTCParams 时指定 streamId, 而且我们更推荐您采用这种方案。

参数
streamId自定义流 Id。
type仅支持TRTCVideoStreamTypeBig 和 TRTCVideoStreamTypeSub。
注意
您需要先在实时音视频 控制台 中的功能配置页开启“启用旁路推流”才能生效。

◆ stopPublishing()

- (void) stopPublishing

停止向腾讯云的直播 CDN 推流

◆ startPublishCDNStream()

- (void) startPublishCDNStream: (TRTCPublishCDNParam *)  param

开始向友商云的直播 CDN 转推

该接口跟 startPublishing() 类似,但 startPublishCDNStream() 支持向非腾讯云的直播 CDN 转推。 使用 startPublishing() 绑定腾讯云直播 CDN 不收取额外的费用。 使用 startPublishCDNStream() 绑定非腾讯云直播 CDN 需要收取转推费用,且需要通过工单联系我们开通。

◆ stopPublishCDNStream()

- (void) stopPublishCDNStream

停止向非腾讯云地址转推

◆ setMixTranscodingConfig()

- (void) setMixTranscodingConfig: (TRTCTranscodingConfig *)  config

设置云端的混流转码参数

如果您在实时音视频 控制台 中的功能配置页开启了“启动自动旁路直播”功能, 房间里的每一路画面都会有一个默认的直播 CDN 地址

一个直播间中可能有不止一位主播,而且每个主播都有自己的画面和声音,但对于 CDN 观众来说,他们只需要一路直播流, 所以您需要将多路音视频流混成一路标准的直播流,这就需要混流转码。

当您调用 setMixTranscodingConfig() 接口时,SDK 会向腾讯云的转码服务器发送一条指令,目的是将房间里的多路音视频流混合为一路, 您可以通过 mixUsers 参数来调整每一路画面的位置,以及是否只混合声音,也可以通过 videoWidth、videoHeight、videoBitrate 等参数控制混合音视频流的编码参数。

【画面1】=> 解码 ====> \
                        \
【画面2】=> 解码 =>  画面混合 => 编码 => 【混合后的画面】
                        /
【画面3】=> 解码 ====> /
【声音1】=> 解码 ====> \
                        \
【声音2】=> 解码 =>  声音混合 => 编码 => 【混合后的声音】
                        /
【声音3】=> 解码 ====> /

参考文档:云端混流转码

参数
config请参考 TRTCCloudDef.h 中关于 TRTCTranscodingConfig 的介绍。如果传入 nil 则取消云端混流转码。
注意
关于云端混流的注意事项:
  • 云端转码会引入一定的 CDN 观看延时,大概会增加1 - 2秒。
  • 调用该函数的用户,会将连麦中的多路画面混合到自己当前这路画面中。

◆ startLocalPreview()

- (void) startLocalPreview (BOOL)  frontCamera
view: (TXView *)  view 

开启本地视频的预览画面 (iOS 版本)

当开始渲染首帧摄像头画面时,您会收到 TRTCCloudDelegate 中的 onFirstVideoFrame(nil) 回调。

参数
frontCameraYES:前置摄像头;NO:后置摄像头。
view承载视频画面的控件

◆ startLocalPreview()

- (void) startLocalPreview: (TXView *)  view

开启本地视频的预览画面 (Mac 版本)

在调用该方法前,可以先调用 setCurrentCameraDevice 选择使用 Mac 自带摄像头或外接摄像头。 当开始渲染首帧摄像头画面时,您会收到 TRTCCloudDelegate 中的 onFirstVideoFrame(nil) 回调。

参数
view承载视频画面的控件

◆ updateLocalView()

- (void) updateLocalView: (TXView *)  view

更新本地视频预览画面的窗口

参数
view承载视频画面的控件

◆ stopLocalPreview()

- (void) stopLocalPreview

停止本地视频采集及预览

◆ muteLocalVideo()

- (void) muteLocalVideo: (BOOL)  mute

暂停/恢复推送本地的视频数据

当暂停推送本地视频后,房间里的其它成员将会收到 onUserVideoAvailable(userId, NO) 回调通知 当恢复推送本地视频后,房间里的其它成员将会收到 onUserVideoAvailable(userId, YES) 回调通知

参数
muteYES:暂停;NO:恢复

◆ startRemoteView()

- (void) startRemoteView: (NSString *)  userId
view: (TXView *)  view 

开始显示远端视频画面

在收到 SDK 的 onUserVideoAvailable(userid, YES) 通知时,可以获知该远程用户开启了视频, 此后调用 startRemoteView(userid) 接口加载该用户的远程画面,此时可以用 loading 动画优化加载过程中的等待体验。 待该用户的首帧画面开始显示时,您会收到 onFirstVideoFrame(userId) 事件回调。

参数
userId对方的用户标识
view承载视频画面的控件

◆ updateRemoteView()

- (void) updateRemoteView: (TXView *)  view
streamType: (TRTCVideoStreamType type
forUser: (NSString *)  userId 

更新远端视频画面的窗口

参数
view承载视频画面的控件
type要设置预览窗口的流类型(TRTCVideoStreamTypeBig、TRTCVideoStreamTypeSub)
userId对方的用户标识

◆ stopRemoteView()

- (void) stopRemoteView: (NSString *)  userId

停止显示远端视频画面,同时不再拉取该远端用户的视频数据流

调用此接口后,SDK 会停止接收该用户的远程视频流,同时会清理相关的视频显示资源。

参数
userId对方的用户标识

◆ stopAllRemoteView()

- (void) stopAllRemoteView

停止显示所有远端视频画面,同时不再拉取远端用户的视频数据流

注意
如果有屏幕分享的画面在显示,则屏幕分享的画面也会一并被关闭。

◆ muteRemoteVideoStream()

- (void) muteRemoteVideoStream: (NSString *)  userId
mute: (BOOL)  mute 

暂停/恢复接收指定的远端视频流

该接口仅暂停/恢复接收指定的远端用户的视频流,但并不释放显示资源,所以如果暂停,视频画面会冻屏在 mute 前的最后一帧。

参数
userId对方的用户标识
mute是否暂停接收

◆ muteAllRemoteVideoStreams()

- (void) muteAllRemoteVideoStreams: (BOOL)  mute

暂停/恢复接收所有远端视频流

该接口仅暂停/恢复接收所有远端用户的视频流,但并不释放显示资源,所以如果暂停,视频画面会冻屏在 mute 前的最后一帧。

参数
mute是否暂停接收

◆ setVideoEncoderParam()

- (void) setVideoEncoderParam: (TRTCVideoEncParam *)  param

设置视频编码器相关参数

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

参数
param视频编码参数,详情请参考 TRTCCloudDef.h 中的 TRTCVideoEncParam 定义

◆ setNetworkQosParam()

- (void) setNetworkQosParam: (TRTCNetworkQosParam *)  param

设置网络流控相关参数

该设置决定 SDK 在各种网络环境下的调控策略(例如弱网下选择“保清晰”或“保流畅”)

参数
param网络流控参数,详情请参考 TRTCCloudDef.h 中的 TRTCNetworkQosParam 定义

◆ setLocalViewFillMode()

- (void) setLocalViewFillMode: (TRTCVideoFillMode mode

设置本地图像的渲染模式

参数
mode填充(画面可能会被拉伸裁剪)或适应(画面可能会有黑边),默认值:TRTCVideoFillMode_Fill

◆ setRemoteViewFillMode()

- (void) setRemoteViewFillMode: (NSString *)  userId
mode: (TRTCVideoFillMode mode 

设置远端图像的渲染模式

参数
userId用户 ID
mode填充(画面可能会被拉伸裁剪)或适应(画面可能会有黑边),默认值:TRTCVideoFillMode_Fill

◆ setLocalViewRotation()

- (void) setLocalViewRotation: (TRTCVideoRotation rotation

设置本地图像的顺时针旋转角度

参数
rotation支持90、180以及270旋转角度,默认值:TRTCVideoRotation_0

◆ setRemoteViewRotation()

- (void) setRemoteViewRotation: (NSString *)  userId
rotation: (TRTCVideoRotation rotation 

设置远端图像的顺时针旋转角度

参数
userId用户 ID
rotation支持90、180以及270旋转角度,默认值:TRTCVideoRotation_0

◆ setVideoEncoderRotation()

- (void) setVideoEncoderRotation: (TRTCVideoRotation rotation

设置视频编码输出的画面方向,即设置远端用户观看到的和服务器录制的画面方向

在 iPad、iPhone 等设备180度旋转时,由于摄像头的采集方向没有变,所以对方看到的画面是上下颠倒的, 在这种情况下,您可以通过该接口将 SDK 输出到对方的画面旋转180度,这样可以可以确保对方看到的画面依然正常。

参数
rotation目前支持0和180两个旋转角度,默认值:TRTCVideoRotation_0

◆ setLocalViewMirror() [1/2]

- (void) setLocalViewMirror: (TRTCLocalVideoMirrorType mirror

设置本地摄像头预览画面的镜像模式(iOS)

参数
mirror镜像模式,默认值:TRTCLocalVideoMirrorType_Auto

◆ setLocalViewMirror() [2/2]

- (void) setLocalViewMirror: (BOOL)  mirror

设置本地摄像头预览画面的镜像模式(Mac)

参数
mirror镜像模式,默认值:YES

◆ setVideoEncoderMirror()

- (void) setVideoEncoderMirror: (BOOL)  mirror

设置编码器输出的画面镜像模式

该接口不改变本地摄像头的预览画面,但会改变另一端用户看到的(以及服务器录制的)画面效果。

参数
mirror是否开启远端镜像,YES:开启远端画面镜像;NO:关闭远端画面镜像,默认值:NO。

◆ setGSensorMode()

- (void) setGSensorMode: (TRTCGSensorMode mode

设置重力感应的适应模式

参数
mode重力感应模式,详情请参考 TRTCGSensorMode 的定义,默认值:TRTCGSensorMode_UIAutoLayout

◆ enableEncSmallVideoStream()

- (int) enableEncSmallVideoStream: (BOOL)  enable
withQuality: (TRTCVideoEncParam *)  smallVideoEncParam 

开启大小画面双路编码模式

如果当前用户是房间中的主要角色(例如主播、老师、主持人等),并且使用 PC 或者 Mac 环境,可以开启该模式。 开启该模式后,当前用户会同时输出【高清】和【低清】两路视频流(但只有一路音频流)。 对于开启该模式的当前用户,会占用更多的网络带宽,并且会更加消耗 CPU 计算资源。

对于同一房间的远程观众而言:

  • 如果用户下行网络很好,可以选择观看【高清】画面
  • 如果用户下行网络较差,可以选择观看【低清】画面
注意
双路编码开启后,会消耗更多的 CPU 和 网络带宽,所以对于 iMac、Windows 或者高性能 Pad 可以考虑开启,但请不要在手机端开启。
参数
enable是否开启小画面编码,默认值:NO
smallVideoEncParam小流的视频参数
返回
0:成功;-1:大画面已经是最低画质

◆ setRemoteVideoStreamType()

- (void) setRemoteVideoStreamType: (NSString *)  userId
type: (TRTCVideoStreamType type 

选定观看指定 uid 的大画面或小画面

此功能需要该 uid 通过 enableEncSmallVideoStream 提前开启双路编码模式。 如果该 uid 没有开启双路编码模式,则此操作将无任何反应。

参数
userId用户 ID
type视频流类型,即选择看大画面或小画面,默认为大画面

◆ setPriorRemoteVideoStreamType()

- (void) setPriorRemoteVideoStreamType: (TRTCVideoStreamType type

设定观看方优先选择的视频质量

低端设备推荐优先选择低清晰度的小画面。 如果对方没有开启双路视频模式,则此操作无效。

参数
type默认观看大画面或小画面,默认为大画面

◆ snapshotVideo()

- (void) snapshotVideo: (NSString *)  userId
type: (TRTCVideoStreamType type
completionBlock: (void(^)(UIImage *image))  completionBlock 

视频画面截图

截取本地、远程主路和远端辅流的视频画面,并通过 UIImage 对象返回给您。

参数
userId用户 ID,nil 表示截取本地视频画面。
type视频流类型,支持主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)和 辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)。
completionBlock画面截取后的回调。
注意
设置 userId = nil,代表截取当前用户的本地画面,目前本地画面仅支持截取主路画面(TRTCVideoStreamTypeBig)。

◆ setAudioQuality()

- (void) setAudioQuality: (TRTCAudioQuality quality

设置音频质量 主播端的音质越高,观众端的听感越好,但传输所依赖的带宽也就越高,在带宽有限的场景下也更容易出现卡顿。

  • TRTCCloudDef#TRTCAudioQualitySpeech, 流畅:采样率:16k;单声道;音频裸码率:16kbps;适合语音通话为主的场景,比如在线会议,语音通话。
  • TRTCCloudDef#TRTCAudioQualityDefault,默认:采样率:48k;单声道;音频裸码率:50kbps;SDK 默认的音频质量,如无特殊需求推荐选择之。
  • TRTCCloudDef#TRTCAudioQualityMusic,高音质:采样率:48k;双声道 + 全频带;音频裸码率:128kbps;适合需要高保真传输音乐的场景,比如K歌、音乐直播等。
    注意
    该方法需要在 startLocalAudio 之前进行设置,否则不会生效。

◆ startLocalAudio()

- (void) startLocalAudio

开启本地音频的采集和上行

该函数会启动麦克风采集,并将音频数据传输给房间里的其他用户。 SDK 不会默认开启本地音频采集和上行,您需要调用该函数开启,否则房间里的其他用户将无法听到您的声音。

注意
该函数会检查麦克风的使用权限,如果当前 App 没有麦克风权限,SDK 会向用户申请开启。

◆ stopLocalAudio()

- (void) stopLocalAudio

关闭本地音频的采集和上行

当关闭本地音频的采集和上行,房间里的其它成员会收到 onUserAudioAvailable(NO) 回调通知。

◆ muteLocalAudio()

- (void) muteLocalAudio: (BOOL)  mute

静音/取消静音本地的音频

当静音本地音频后,房间里的其它成员会收到 onUserAudioAvailable(userId, NO) 回调通知。 当取消静音本地音频后,房间里的其它成员会收到 onUserAudioAvailable(userId, YES) 回调通知。

与 stopLocalAudio 不同之处在于,muteLocalAudio:YES 并不会停止发送音视频数据,而是继续发送码率极低的静音包。 由于 MP4 等视频文件格式,对于音频的连续性是要求很高的,使用 stopLocalAudio 会导致录制出的 MP4 不易播放。 因此在对录制质量要求很高的场景中,建议选择 muteLocalAudio,从而录制出兼容性更好的 MP4 文件。

参数
muteYES:静音;NO:取消静音

◆ setAudioRoute()

- (void) setAudioRoute: (TRTCAudioRoute route

设置音频路由

微信和手机 QQ 视频通话功能的免提模式就是基于音频路由实现的。 一般手机都有两个扬声器,一个是位于顶部的听筒扬声器,声音偏小;一个是位于底部的立体声扬声器,声音偏大。 设置音频路由的作用就是决定声音使用哪个扬声器播放。

参数
route音频路由,即声音由哪里输出(扬声器、听筒),默认值:TRTCAudioModeSpeakerphone

◆ muteRemoteAudio()

- (void) muteRemoteAudio: (NSString *)  userId
mute: (BOOL)  mute 

静音/取消静音指定的远端用户的声音

参数
userId对方的用户 ID
muteYES:静音;NO:取消静音
注意
静音时会停止接收该用户的远端音频流并停止播放,取消静音时会自动拉取该用户的远端音频流并进行播放。

◆ muteAllRemoteAudio()

- (void) muteAllRemoteAudio: (BOOL)  mute

静音/取消静音所有用户的声音

参数
muteYES:静音;NO:取消静音
注意
静音时会停止接收所有用户的远端音频流并停止播放,取消静音时会自动拉取所有用户的远端音频流并进行播放。

◆ setRemoteAudioVolume()

- (void) setRemoteAudioVolume: (NSString *)  userId
volume: (int)  volume 

设置某个远程用户的播放音量

参数
userId远程用户 ID
volume音量大小,取值0 - 100

◆ setAudioCaptureVolume()

- (void) setAudioCaptureVolume: (NSInteger)  volume

设置 SDK 采集音量。

参数
volume音量大小,取值0 - 100,默认值为100

◆ getAudioCaptureVolume()

- (NSInteger) getAudioCaptureVolume

获取 SDK 采集音量

◆ setAudioPlayoutVolume()

- (void) setAudioPlayoutVolume: (NSInteger)  volume

设置 SDK 播放音量。

注意
该函数会控制最终交给系统播放的声音音量,会影响录制本地音频文件的音量大小,但不会影响耳返的音量。
参数
volume音量大小,取值0 - 100,默认值为100

◆ getAudioPlayoutVolume()

- (NSInteger) getAudioPlayoutVolume

获取 SDK 播放音量

◆ enableAudioVolumeEvaluation()

- (void) enableAudioVolumeEvaluation: (NSUInteger)  interval

启用音量大小提示

开启此功能后,SDK 会在 onUserVoiceVolume() 中反馈对每一路声音音量大小值的评估。 如需打开此功能,请在 startLocalAudio() 之前调用。

注意
Demo 中有一个音量大小的提示条,就是基于这个接口实现的。
参数
interval设置 onUserVoiceVolume 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms;

◆ startAudioRecording()

- (int) startAudioRecording: (TRTCAudioRecordingParams *)  param

开始录音

该方法调用后, SDK 会将通话过程中的所有音频(包括本地音频,远端音频,BGM 等)录制到一个文件里。 无论是否进房,调用该接口都生效。 如果调用 exitRoom 时还在录音,录音会自动停止。

参数
param录音参数,请参考 TRTCAudioRecordingParams
返回
0:成功;-1:录音已开始;-2:文件或目录创建失败;-3:后缀指定的音频格式不支持

◆ stopAudioRecording()

- (void) stopAudioRecording

停止录音

如果调用 exitRoom 时还在录音,录音会自动停止。

◆ setSystemVolumeType()

- (void) setSystemVolumeType: (TRTCSystemVolumeType type

设置通话时使用的系统音量类型

智能手机一般具备两种系统音量类型,即通话音量类型和媒体音量类型。

  • 通话音量:手机专门为通话场景设计的音量类型,使用手机自带的回声抵消功能,音质相比媒体音量类型较差, 无法通过音量按键将音量调成零,但是支持蓝牙耳机上的麦克风。
  • 媒体音量:手机专门为音乐场景设计的音量类型,音质相比于通话音量类型要好,通过通过音量按键可以将音量调成零。 使用媒体音量类型时,如果要开启回声抵消(AEC)功能,SDK 会开启内置的声学处理算法对声音进行二次处理。 在媒体音量模式下,蓝牙耳机无法使用自带的麦克风采集声音,只能使用手机上的麦克风进行声音采集。

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

注意
  1. 需要在调用 startLocalAudio() 之前调用该接口。
  2. 如无特殊需求,不推荐您自行设置,您只需通过 enterRoom 设置好适合您的场景,SDK 内部会自动选择相匹配的音量类型。
参数
type系统音量类型,如无特殊需求,不推荐您自行设置。

◆ switchCamera()

- (void) switchCamera

切换摄像头

◆ isCameraZoomSupported()

- (BOOL) isCameraZoomSupported

查询当前摄像头是否支持缩放

◆ setZoom()

- (void) setZoom: (CGFloat)  distance

设置摄像头缩放因子(焦距)

取值范围1 - 5,取值为1表示最远视角(正常镜头),取值为5表示最近视角(放大镜头)。 最大值推荐为5,若超过5,视频数据会变得模糊不清。

参数
distance取值范围为1 - 5,数值越大,焦距越远

◆ isCameraTorchSupported()

- (BOOL) isCameraTorchSupported

查询是否支持开关闪光灯(手电筒模式)

◆ enbaleTorch()

- (BOOL) enbaleTorch: (BOOL)  enable

开关闪光灯

参数
enableYES:开启;NO:关闭,默认值:NO

◆ isCameraFocusPositionInPreviewSupported()

- (BOOL) isCameraFocusPositionInPreviewSupported

查询是否支持设置焦点

◆ setFocusPosition()

- (void) setFocusPosition: (CGPoint)  touchPoint

设置摄像头焦点

参数
touchPoint对焦位置

◆ isCameraAutoFocusFaceModeSupported()

- (BOOL) isCameraAutoFocusFaceModeSupported

查询是否支持自动识别人脸位置

◆ enableAutoFaceFoucs()

- (void) enableAutoFaceFoucs: (BOOL)  enable

自动识别人脸位置

参数
enableYES:开启;NO:关闭,默认值:YES

◆ getCameraDevicesList()

- (NSArray<TRTCMediaDeviceInfo*>*) getCameraDevicesList

获取摄像头设备列表

Mac 主机本身自带一个摄像头,也允许插入 USB 摄像头。 如果您希望用户选择自己外接的摄像头,可以提供一个多摄像头选择的功能。

返回
摄像头设备列表,第一项为当前系统默认设备

◆ getCurrentCameraDevice()

- (TRTCMediaDeviceInfo*) getCurrentCameraDevice

获取当前使用的摄像头

◆ setCurrentCameraDevice()

- (int) setCurrentCameraDevice: (NSString *)  deviceId

设置要使用的摄像头

参数
deviceId从 getCameraDevicesList 中得到的设备 ID
返回
0:成功;-1:失败

◆ getMicDevicesList()

- (NSArray<TRTCMediaDeviceInfo*>*) getMicDevicesList

获取麦克风设备列表

Mac 主机本身自带一个质量很好的麦克风,但它也允许用户外接其他的麦克风,而且很多 USB 摄像头上也自带麦克风。 如果您希望用户选择自己外接的麦克风,可以提供一个多麦克风选择的功能。

返回
麦克风设备列表,第一项为当前系统默认设备

◆ getCurrentMicDevice()

- (TRTCMediaDeviceInfo*) getCurrentMicDevice

获取当前的麦克风设备

返回
当前麦克风设备信息

◆ setCurrentMicDevice()

- (int) setCurrentMicDevice: (NSString *)  deviceId

设置要使用的麦克风

参数
deviceId从 getMicDevicesList 中得到的设备 ID
返回
0:成功;<0:失败

◆ getCurrentMicDeviceVolume()

- (float) getCurrentMicDeviceVolume

获取当前麦克风设备音量

返回
麦克风音量

◆ setCurrentMicDeviceVolume()

- (void) setCurrentMicDeviceVolume: (NSInteger)  volume

设置麦克风设备的音量

该接口的功能是调节系统采集音量,如果用户直接调节 Mac 系统设置的采集音量时,该接口的设置结果会被用户的操作所覆盖。

参数
volume麦克风音量值,范围0 - 100

◆ setCurrentMicDeviceMute()

- (void) setCurrentMicDeviceMute: (BOOL)  mute

设置系统当前麦克风设备的静音状态

参数
mute设置为 YES 时,麦克风设备静音

◆ getCurrentMicDeviceMute()

- (BOOL) getCurrentMicDeviceMute

获取系统当前麦克风设备是否静音

返回
静音状态

◆ getSpeakerDevicesList()

- (NSArray<TRTCMediaDeviceInfo*>*) getSpeakerDevicesList

获取扬声器设备列表

返回
扬声器设备列表,第一项为当前系统默认设备

◆ getCurrentSpeakerDevice()

- (TRTCMediaDeviceInfo*) getCurrentSpeakerDevice

获取当前的扬声器设备

返回
当前扬声器设备信息

◆ setCurrentSpeakerDevice()

- (int) setCurrentSpeakerDevice: (NSString *)  deviceId

设置要使用的扬声器

参数
deviceId从 getSpeakerDevicesList 中得到的设备 ID
返回
0:成功;<0:失败

◆ getCurrentSpeakerDeviceVolume()

- (float) getCurrentSpeakerDeviceVolume

当前扬声器设备音量

返回
扬声器音量

◆ setCurrentSpeakerDeviceVolume()

- (int) setCurrentSpeakerDeviceVolume: (NSInteger)  volume

设置当前扬声器音量

该接口的功能是调节系统播放音量,如果用户直接调节 Mac 系统设置的播放音量时,该接口的设置结果会被用户的操作所覆盖。

参数
volume设置的扬声器音量,范围0 - 100
返回
0:成功;<0:失败

◆ setCurrentSpeakerDeviceMute()

- (void) setCurrentSpeakerDeviceMute: (BOOL)  mute

设置系统当前扬声器设备的静音状态

参数
mute设置为 YES 时,扬声器设备静音

◆ getCurrentSpeakerDeviceMute()

- (BOOL) getCurrentSpeakerDeviceMute

获取系统当前扬声器设备是否静音

返回
静音状态

◆ getBeautyManager()

- (TXBeautyManager *) getBeautyManager

获取美颜管理对象

通过美颜管理,您可以使用以下功能:

  • 设置"美颜风格"、“美白”、“红润”、“大眼”、“瘦脸”、“V脸”、“下巴”、“短脸”、“小鼻”、“亮眼”、“白牙”、“祛眼袋”、“祛皱纹”、“祛法令纹”等美容效果。
  • 调整“发际线”、“眼间距”、“眼角”、“嘴形”、“鼻翼”、“鼻子位置”、“嘴唇厚度”、“脸型”
  • 设置人脸挂件(素材)等动态效果
  • 添加美妆
  • 进行手势识别

◆ setWatermark()

- (void) setWatermark: (TXImage *)  image
streamType: (TRTCVideoStreamType streamType
rect: (CGRect)  rect 

添加水印

水印的位置是通过 rect 来指定的,rect 的格式为 (x,y,width,height)

  • x:水印的坐标,取值范围为0 - 1的浮点数。
  • y:水印的坐标,取值范围为0 - 1的浮点数。
  • width:水印的宽度,取值范围为0 - 1的浮点数。
  • height:是不用设置的,SDK 内部会根据水印图片的宽高比自动计算一个合适的高度。

例如,如果当前编码分辨率是540 × 960,rect 设置为(0.1,0.1,0.2,0.0)。 那么水印的左上坐标点就是(540 × 0.1,960 × 0.1)即(54,96),水印的宽度是 540 × 0.2 = 108px,高度自动计算。

参数
image水印图片,**必须使用透明底的 png 格式**
streamType如果要给辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)也设置水印,需要调用两次的 setWatermark。
rect水印相对于编码分辨率的归一化坐标,x,y,width,height 取值范围0 - 1。

◆ getAudioEffectManager()

- (TXAudioEffectManager *) getAudioEffectManager

获取音效管理类 TXAudioEffectManager

该模块是整个 SDK 的音效管理模块,支持如下功能:

  • 耳机耳返:麦克风捕捉的声音实时通过耳机播放。
  • 混响效果:KTV、小房间、大会堂、低沉、洪亮...
  • 变声特效:萝莉、大叔、重金属、外国人...
  • 背景音乐:支持在线音乐和本地音乐,支持变速、变调等特效、支持原生和伴奏并播放和循环播放。
  • 短音效:鼓掌声、欢笑声等简短的音效文件,对于小于10秒的文件,请将 isShortFile 参数设置为 YES。

◆ startScreenCaptureInApp()

- (void) startScreenCaptureInApp: (TRTCVideoEncParam *)  encParams

开始应用内的屏幕分享(该接口仅支持 iOS 13.0 及以上的 iPhone 和 iPad)

iPhone 屏幕分享的推荐配置参数:

  • 分辨率(videoResolution): 1280 x 720
  • 帧率(videoFps): 10 FPS
  • 码率(videoBitrate): 1600 kbps
  • 分辨率自适应(enableAdjustRes): NO
参数
encParams设置屏幕分享时的编码参数,推荐采用上述推荐配置,如果您指定 encParams 为 nil,则使用您调用 startScreenCapture 之前的编码参数设置。

◆ startScreenCaptureByReplaykit()

- (void) startScreenCaptureByReplaykit: (TRTCVideoEncParam *)  encParams
appGroup: (NSString *)  appGroup 

开始全系统的屏幕分享(该接口支持 iOS 11.0 及以上的 iPhone 和 iPad)

该接口支持共享整个 iOS 系统的屏幕,可以实现类似腾讯会议的全系统级的屏幕分享。 但是实现复杂度要比 startScreenCaptureInApp 略繁琐一些,需要参考文档为 App 实现一个 Replaykit 扩展模块。

参考文档:[屏幕录制]https://cloud.tencent.com/document/product/647/32249

iPhone 屏幕分享的推荐配置参数:

  • 分辨率(videoResolution): 1280 x 720
  • 帧率(videoFps): 10 FPS
  • 码率(videoBitrate): 1600 kbps
  • 分辨率自适应(enableAdjustRes): NO
参数
encParams设置屏幕分享时的编码参数,推荐采用上述推荐配置,如果您指定 encParams 为 nil,则使用您调用 startScreenCapture 之前的编码参数设置。
appGroup主 App 与 Broadcast 共享的 Application Group Identifier,可以指定为 nil,但按照文档设置会使功能更加可靠。

◆ startScreenCapture()

- (void) startScreenCapture (NSView *)  view
streamType: (TRTCVideoStreamType streamType
encParam: (TRTCVideoEncParam *)  encParam 

开始桌面端屏幕分享(该接口仅支持 Mac OS 桌面系统)

参数
view渲染控件所在的父控件,可以设置为 nil,表示不显示屏幕分享的预览效果。
streamType屏幕分享使用的线路,可以设置为主路(TRTCVideoStreamTypeBig)或者辅路(TRTCVideoStreamTypeSub),默认使用辅路。
encParam屏幕分享的画面编码参数,可以设置为 nil,表示让 SDK 选择最佳的编码参数(分辨率、码率等)。
注意
一个用户同时最多只能上传一条主路(TRTCVideoStreamTypeBig)画面和一条辅路(TRTCVideoStreamTypeSub)画面, 默认情况下,屏幕分享使用辅路画面,如果使用主路画面,建议您提前停止摄像头采集(stopLocalPreview)避免相互冲突。

◆ stopScreenCapture()

- (int) stopScreenCapture

停止屏幕采集

返回
0:成功;<0:失败

◆ pauseScreenCapture()

- (int) pauseScreenCapture

暂停屏幕分享

返回
0:成功;<0:失败

◆ resumeScreenCapture()

- (int) resumeScreenCapture

恢复屏幕分享

返回
0:成功;<0:失败

◆ getScreenCaptureSourcesWithThumbnailSize()

- (NSArray<TRTCScreenCaptureSourceInfo*>*) getScreenCaptureSourcesWithThumbnailSize: (CGSize)  thumbnailSize
iconSize: (CGSize)  iconSize 

枚举可分享的屏幕窗口,仅支持 Mac OS 平台,建议在 startScreenCapture 之前调用

如果您要给您的 App 增加屏幕分享功能,一般需要先显示一个窗口选择界面,这样用户可以选择希望分享的窗口。 通过下列函数,您可以获得可分享窗口的 ID、类型、窗口名称以及缩略图。 获取上述信息后,您就可以实现一个窗口选择界面。您也可以使用 Demo 源码中已经实现好的窗口选择界面。

注意
返回的列表中包括屏幕和应用窗口,屏幕会在列表的前面几个元素中。
参数
thumbnailSize指定要获取的窗口缩略图大小,缩略图可用于绘制在窗口选择界面上
iconSize指定要获取的窗口图标大小
返回
窗口列表包括屏幕

◆ selectScreenCaptureTarget()

- (void) selectScreenCaptureTarget: (TRTCScreenCaptureSourceInfo *)  screenSource
rect: (CGRect)  rect
capturesCursor: (BOOL)  capturesCursor
highlight: (BOOL)  highlight 

设置屏幕分享参数,仅支持 Mac OS 平台,该方法在屏幕分享过程中也可以调用

如果您期望在屏幕分享的过程中,切换想要分享的窗口,可以再次调用这个函数,无需重新开启屏幕分享。

参数
screenSource指定分享源
rect指定捕获的区域(传 CGRectZero 则默认分享全屏)
capturesCursor是否捕获鼠标光标
highlight是否高亮正在分享的窗口

◆ startRemoteSubStreamView()

- (void) startRemoteSubStreamView: (NSString *)  userId
view: (TXView *)  view 

开始显示远端用户的辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)

  • startRemoteView() 用于显示主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)。
  • startRemoteSubStreamView() 用于显示辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)。
参数
userId对方的用户标识
view渲染控件
注意
请在 onUserSubStreamAvailable 回调后再调用这个接口。

◆ stopRemoteSubStreamView()

- (void) stopRemoteSubStreamView: (NSString *)  userId

停止显示远端用户的辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)。

参数
userId对方的用户标识

◆ setRemoteSubStreamViewFillMode()

- (void) setRemoteSubStreamViewFillMode: (NSString *)  userId
mode: (TRTCVideoFillMode mode 

设置辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的显示模式

  • setRemoteViewFillMode() 用于设置远端主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)的显示模式。
  • setRemoteSubStreamViewFillMode() 用于设置远端辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的显示模式。
参数
userId用户的 ID
mode填充(画面可能会被拉伸裁剪)或适应(画面可能会有黑边),默认值:TRTCVideoFillMode_Fit

◆ setRemoteSubStreamViewRotation()

- (void) setRemoteSubStreamViewRotation: (NSString *)  userId
rotation: (TRTCVideoRotation rotation 

设置辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的顺时针旋转角度

  • setRemoteViewRotation() 用于设置远端主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)的旋转角度。
  • setRemoteSubStreamViewRotation() 用于设置远端辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的旋转角度。
参数
userId用户 ID
rotation支持90、180、270旋转角度

◆ setSubStreamEncoderParam()

- (void) setSubStreamEncoderParam: (TRTCVideoEncParam *)  param

设置屏幕分享的编码器参数,仅适用 Mac 平台

  • setVideoEncoderParam() 用于设置主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)的编码参数。
  • setSubStreamEncoderParam() 用于设置辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的编码参数。 该设置决定远端用户看到的画面质量,同时也是云端录制出的视频文件的画面质量。
参数
param辅流编码参数,详情请参考 TRTCCloudDef.h 中的 TRTCVideoEncParam 定义
注意
即使使用主路传输屏幕分享的数据(在调用 startScreenCapture 时设置 type=TRTCVideoStreamTypeBig),依然要使用此接口更新屏幕分享的编码参数。

◆ setSubStreamMixVolume()

- (void) setSubStreamMixVolume: (NSInteger)  volume

设置屏幕分享的混音音量大小,仅适用 Mac 平台

数值越高,辅路音量的占比越高,麦克风音量占比越小。不推荐将该参数值设置过大,数值太大容易压制麦克风的声音。

参数
volume设置的音量大小,范围0 - 100

◆ enableCustomVideoCapture()

- (void) enableCustomVideoCapture: (BOOL)  enable

启用视频自定义采集模式

开启该模式后,SDK 不在运行原有的视频采集流程,只保留编码和发送能力。 您需要用 sendCustomVideoData() 不断地向 SDK 塞入自己采集的视频画面。

参数
enable是否启用,默认值:NO

◆ sendCustomVideoData()

- (void) sendCustomVideoData: (TRTCVideoFrame *)  frame

向 SDK 投送自己采集的视频数据

TRTCVideoFrame 推荐下列填写方式(其他字段不需要填写):

  • pixelFormat:推荐选择 TRTCVideoPixelFormat_NV12。
  • bufferType:推荐选择 TRTCVideoBufferType_PixelBuffer。
  • pixelBuffer:iOS 平台上常用的视频数据格式。
  • data:视频裸数据格式,bufferType 为 NSData 时使用。
  • timestamp:如果 timestamp 间隔不均匀,会严重影响音画同步和录制出的 MP4 质量。
  • width:视频图像长度,bufferType 为 NSData 时填写。
  • height:视频图像宽度,bufferType 为 NSData 时填写。

参考文档:自定义采集和渲染

参数
frame视频数据,支持 PixelBuffer NV12,BGRA 以及 I420 格式数据。
注意
- SDK 内部有帧率控制逻辑,目标帧率以您在 setVideoEncoderParam 中设置的为准,太快会自动丢帧,太慢则会自动补帧。
- 可以设置 frame 中的 timestamp 为 0,相当于让 SDK 自己设置时间戳,但请“均匀”地控制 sendCustomVideoData 的调用间隔,否则会导致视频帧率不稳定。

◆ setLocalVideoRenderDelegate()

- (int) setLocalVideoRenderDelegate: (id< TRTCVideoRenderDelegate >)  delegate
pixelFormat: (TRTCVideoPixelFormat pixelFormat
bufferType: (TRTCVideoBufferType bufferType 

设置本地视频的自定义渲染回调

设置此方法后,SDK 内部会跳过原来的渲染流程,并把采集到的数据回调出来,您需要自己完成画面渲染。

  • pixelFormat 指定回调的数据格式,例如 NV12、i420 以及 32BGRA。
  • bufferType 指定 buffer 的类型,直接使用 PixelBuffer 效率最高;使用 NSData 相当于让 SDK 在内部做了一次内存转换,因此会有额外的性能损耗。
参数
delegate自定义渲染回调
pixelFormat指定回调的像素格式
bufferTypePixelBuffer:可以直接使用 imageWithCVImageBuffer 转成 UIImage;NSData:经过内存整理的视频数据。
返回
0:成功;<0:错误

◆ setRemoteVideoRenderDelegate()

- (int) setRemoteVideoRenderDelegate: (NSString *)  userId
delegate: (id< TRTCVideoRenderDelegate >)  delegate
pixelFormat: (TRTCVideoPixelFormat pixelFormat
bufferType: (TRTCVideoBufferType bufferType 

设置远端视频的自定义渲染回调

此方法同 setLocalVideoRenderDelegate,区别在于一个是本地画面的渲染回调, 一个是远程画面的渲染回调。

注意
调用此函数之前,需要先调用 startRemoteView 来获取远端用户的视频流(view 设置为 nil 即可),否则不会有数据回调出来。
参数
userId指定目标 userId。
delegate自定义渲染的回调。
pixelFormat指定回调的像素格式。
bufferTypePixelBuffer:可以直接使用 imageWithCVImageBuffer 转成 UIImage;NSData:经过内存整理的视频数据。
返回
0:成功;<0:错误

◆ enableCustomAudioCapture()

- (void) enableCustomAudioCapture: (BOOL)  enable

启用音频自定义采集模式

开启该模式后,SDK 不在运行原有的音频采集流程,只保留编码和发送能力。 您需要用 sendCustomAudioData() 不断地向 SDK 塞入自己采集的音频数据。

注意
由于回声抵消(AEC)需要严格的控制声音采集和播放的时间,所以开启自定义音频采集后,AEC 能力可能会失效。
参数
enable是否启用, true:启用;false:关闭,默认值:NO

◆ sendCustomAudioData()

- (void) sendCustomAudioData: (TRTCAudioFrame *)  frame

向 SDK 投送自己采集的音频数据

TRTCAudioFrame 推荐如下填写方式:

  • data:音频帧 buffer。音频帧数据必须是 PCM 格式,推荐每帧20ms采样数。【48000采样率、单声道的帧长度:48000 × 0.02s × 1 × 16bit = 15360bit = 1920字节】。
  • sampleRate:采样率,仅支持48000。
  • channel:频道数量(如果是立体声,数据是交叉的),单声道:1; 双声道:2。
  • timestamp:如果 timestamp 间隔不均匀,会严重影响音画同步和录制出的 MP4 质量。

参考文档:自定义采集和渲染

参数
frame音频数据
注意
可以设置 frame 中的 timestamp 为0,相当于让 SDK 自己设置时间戳,但请“均匀”地控制 sendCustomAudioData 的调用间隔,否则会导致声音断断续续。

◆ setAudioFrameDelegate()

- (void) setAudioFrameDelegate: (id< TRTCAudioFrameDelegate >)  delegate

设置音频数据回调

设置此方法,SDK 内部会把音频数据(PCM 格式)回调出来,包括:

  • onCapturedRawAudioFrame:本地麦克风采集到的原始音频数据回调
  • onLocalProcessedAudioFrame:本地采集并经过音频模块前处理后的音频数据回调
  • onRemoteUserAudioFrame:混音前的每一路远程用户的音频数据
  • onMixedPlayAudioFrame:各路音频数据混合后送入扬声器播放的音频数据
参数
delegate音频数据回调,delegate = nil 则停止回调数据

◆ sendCustomCmdMsg()

- (BOOL) sendCustomCmdMsg: (NSInteger)  cmdID
data: (NSData *)  data
reliable: (BOOL)  reliable
ordered: (BOOL)  ordered 

发送自定义消息给房间内所有用户

该接口可以借助音视频数据通道向当前房间里的其他用户广播您自定义的数据,但因为复用了音视频数据通道, 请务必严格控制自定义消息的发送频率和消息体的大小,否则会影响音视频数据的质量控制逻辑,造成不确定性的问题。

参数
cmdID消息 ID,取值范围为1 - 10
data待发送的消息,最大支持1KB(1000字节)的数据大小
reliable是否可靠发送,可靠发送的代价是会引入一定的延时,因为接收端要暂存一段时间的数据来等待重传
ordered是否要求有序,即是否要求接收端接收的数据顺序和发送端发送的顺序一致,这会带来一定的接收延时,因为在接收端需要暂存并排序这些消息。
返回
YES:消息已经发出;NO:消息发送失败。
注意
本接口有以下限制:
  • 发送消息到房间内所有用户,每秒最多能发送30条消息。
  • 每个包最大为1KB,超过则很有可能会被中间路由器或者服务器丢弃。
  • 每个客户端每秒最多能发送总计8KB数据。
  • 将 reliable 和 ordered 同时设置为 YES 或 NO,暂不支持交叉设置。
  • 强烈建议不同类型的消息使用不同的 cmdID,这样可以在要求有序的情况下减小消息时延。

◆ sendSEIMsg()

- (BOOL) sendSEIMsg: (NSData *)  data
repeatCount: (int)  repeatCount 

将小数据量的自定义数据嵌入视频帧中

与 sendCustomCmdMsg 的原理不同,sendSEIMsg 是将数据直接塞入视频数据头中。因此,即使视频帧被旁路到了直播 CDN 上, 这些数据也会一直存在。由于需要把数据嵌入视频帧中,建议尽量控制数据大小,推荐使用几个字节大小的数据。

最常见的用法是把自定义的时间戳(timstamp)用 sendSEIMsg 嵌入视频帧中,实现消息和画面的完美对齐。

参数
data待发送的数据,最大支持1kb(1000字节)的数据大小
repeatCount发送数据次数
返回
YES:消息已通过限制,等待后续视频帧发送;NO:消息被限制发送
注意
本接口有以下限制:
  • 数据在接口调用完后不会被即时发送出去,而是从下一帧视频帧开始带在视频帧中发送。
  • 发送消息到房间内所有用户,每秒最多能发送30条消息(与 sendCustomCmdMsg 共享限制)。
  • 每个包最大为1KB,若发送大量数据,会导致视频码率增大,可能导致视频画质下降甚至卡顿(与 sendCustomCmdMsg 共享限制)。
  • 每个客户端每秒最多能发送总计8KB数据(与 sendCustomCmdMsg 共享限制)。
  • 若指定多次发送(repeatCount > 1),则数据会被带在后续的连续 repeatCount 个视频帧中发送出去,同样会导致视频码率增大。
  • 如果 repeatCount > 1,多次发送,接收消息 onRecvSEIMsg 回调也可能会收到多次相同的消息,需要去重。

◆ startSpeedTest()

- (void) startSpeedTest: (uint32_t)  sdkAppId
userId: (NSString *)  userId
userSig: (NSString *)  userSig
completion: (void(^)(TRTCSpeedTestResult *result, NSInteger completedCount, NSInteger totalCount))  completion 

开始进行网络测速(视频通话期间请勿测试,以免影响通话质量)

测速结果将会用于优化 SDK 接下来的服务器选择策略,因此推荐您在用户首次通话前先进行一次测速,这将有助于我们选择最佳的服务器。 同时,如果测试结果非常不理想,您可以通过醒目的 UI 提示用户选择更好的网络。

注意
测速本身会消耗一定的流量,所以也会产生少量额外的流量费用。
参数
sdkAppId应用标识
userId用户标识
userSig用户签名
completion测试回调,会分多次回调

◆ stopSpeedTest()

- (void) stopSpeedTest

停止服务器测速

◆ startCameraDeviceTestInView()

- (void) startCameraDeviceTestInView: (NSView *)  view

开始进行摄像头测试

注意
在测试过程中可以使用 setCurrentCameraDevice 接口切换摄像头。
参数
view预览控件所在的父控件

◆ stopCameraDeviceTest()

- (void) stopCameraDeviceTest

结束视频测试预览

◆ startMicDeviceTest()

- (void) startMicDeviceTest: (NSInteger)  interval
testEcho: (void(^)(NSInteger volume))  testEcho 

开始进行麦克风测试

该方法测试麦克风是否能正常工作,volume 的取值范围为0 - 100。

◆ stopMicDeviceTest()

- (void) stopMicDeviceTest

停止麦克风测试

◆ startSpeakerDeviceTest()

- (void) startSpeakerDeviceTest: (NSString *)  audioFilePath
onVolumeChanged: (void(^)(NSInteger volume, BOOL isLastFrame))  volumeBlock 

开始扬声器测试

该方法播放指定的音频文件测试播放设备是否能正常工作。如果能听到声音,说明播放设备能正常工作。

◆ stopSpeakerDeviceTest()

- (void) stopSpeakerDeviceTest

停止扬声器测试

◆ getSDKVersion()

+ (NSString *) getSDKVersion

获取 SDK 版本信息

◆ setLogLevel()

+ (void) setLogLevel: (TRTCLogLevel level

设置 Log 输出级别

参数
level参见 TRTCLogLevel,默认值:TRTC_LOG_LEVEL_NULL

◆ setConsoleEnabled()

+ (void) setConsoleEnabled: (BOOL)  enabled

启用或禁用控制台日志打印

参数
enabled指定是否启用,默认为禁止状态

◆ setLogCompressEnabled()

+ (void) setLogCompressEnabled: (BOOL)  enabled

启用或禁用 Log 的本地压缩。

开启压缩后,Log 存储体积明显减小,但需要腾讯云提供的 Python 脚本解压后才能阅读。 禁用压缩后,Log 采用明文存储,可以直接用记事本打开阅读,但占用空间较大。

参数
enabled指定是否启用,默认为启动状态

◆ setLogDirPath()

+ (void) setLogDirPath: (NSString *)  path

修改日志保存路径

注意
日志文件默认保存在 sandbox Documents/log 下,如需修改,必须在所有方法前调用。
参数
path存储日志路径

◆ setLogDelegate()

+ (void) setLogDelegate: (id< TRTCLogDelegate >)  logDelegate

设置日志回调

◆ showDebugView()

- (void) showDebugView: (NSInteger)  showType

显示仪表盘

仪表盘是状态统计和事件消息浮层 view,方便调试。

参数
showType0:不显示;1:显示精简版;2:显示全量版

◆ setDebugViewMargin()

- (void) setDebugViewMargin: (NSString *)  userId
margin: (TXEdgeInsets)  margin 

设置仪表盘的边距

必须在 showDebugView 调用前设置才会生效

参数
userId用户 ID
margin仪表盘内边距,注意这里是基于 parentView 的百分比,margin 的取值范围是0 - 1

◆ callExperimentalAPI()

- (void) callExperimentalAPI: (NSString *)  jsonStr

调用实验性 API 接口

注意
该接口用于调用一些实验性功能
参数
jsonStr接口及参数描述的 JSON 字符串

◆ setMicVolumeOnMixing()

- (void) setMicVolumeOnMixing: (NSInteger)  volume

设置麦克风的音量大小

弃用:
v6.9 版本弃用 播放背景音乐混音时使用,用来控制麦克风音量大小。
参数
volume音量大小,100为正常音量,取值范围为0 - 100;默认值:100

◆ setBeautyStyle()

- (void) setBeautyStyle: (TRTCBeautyStyle beautyStyle
beautyLevel: (NSInteger)  beautyLevel
whitenessLevel: (NSInteger)  whitenessLevel
ruddinessLevel: (NSInteger)  ruddinessLevel 

设置美颜、美白以及红润效果级别

SDK 内部集成两套风格不同的磨皮算法,一套我们取名叫“光滑”,适用于美女秀场,效果比较明显。 另一套我们取名“自然”,磨皮算法更多地保留了面部细节,主观感受上会更加自然。

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
beautyStyle美颜风格,光滑或者自然,光滑风格磨皮更加明显,适合娱乐场景。
beautyLevel美颜级别,取值范围0 - 9; 0表示关闭,1 - 9值越大,效果越明显。
whitenessLevel美白级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。
ruddinessLevel红润级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。

◆ setEyeScaleLevel()

- (void) setEyeScaleLevel: (float)  eyeScaleLevel

设置大眼级别,该接口仅在 企业版 SDK 中生效

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
eyeScaleLevel大眼级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。

◆ setFaceScaleLevel()

- (void) setFaceScaleLevel: (float)  faceScaleLevel

设置瘦脸级别,该接口仅在 企业版 SDK 中生效

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
faceScaleLevel瘦脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。

◆ setFaceVLevel()

- (void) setFaceVLevel: (float)  faceVLevel

设置 V 脸级别,该接口仅在 企业版 SDK 中生效

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
faceVLevelV脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。

◆ setChinLevel()

- (void) setChinLevel: (float)  chinLevel

设置下巴拉伸或收缩,该接口仅在 企业版 SDK 中生效

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
chinLevel下巴拉伸或收缩级别,取值范围 -9 - 9;0 表示关闭,小于0表示收缩,大于0表示拉伸。

◆ setFaceShortLevel()

- (void) setFaceShortLevel: (float)  faceShortlevel

设置短脸级别,该接口仅在 企业版 SDK 中生效

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
faceShortlevel短脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。

◆ setNoseSlimLevel()

- (void) setNoseSlimLevel: (float)  noseSlimLevel

设置瘦鼻级别,该接口仅在 企业版 SDK 中生效

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
noseSlimLevel瘦鼻级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。

◆ selectMotionTmpl()

- (void) selectMotionTmpl: (NSString *)  tmplPath

选择使用哪一款 AI 动效挂件,该接口仅在 企业版 SDK 中生效

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
tmplPath动效文件路径

◆ setMotionMute()

- (void) setMotionMute: (BOOL)  motionMute

设置动效静音,该接口仅在 企业版 SDK 中生效

部分挂件本身会有声音特效,通过此 API 可以关闭特效播放时所带的声音效果。

弃用:
v6.9 版本弃用,请使用 TXBeautyManager 设置美颜功能
参数
motionMuteYES:静音;NO:不静音。

◆ startScreenCapture()

- (void) startScreenCapture: (NSView *)  view

启动屏幕分享

弃用:
v7.2 版本弃用,请使用 startScreenCapture:streamType:encParam: 启动屏幕分享
参数
view渲染控件所在的父控件

◆ setFilter()

- (void) setFilter: (TXImage *)  image

设置指定素材滤镜特效

弃用:
v7.2 版本弃用,请使用 TXBeautyManager 设置素材滤镜
参数
image指定素材,即颜色查找表图片。**必须使用 png 格式**

◆ setFilterConcentration()

- (void) setFilterConcentration: (float)  concentration

设置滤镜浓度

在美女秀场等应用场景里,滤镜浓度的要求会比较高,以便更加突显主播的差异。 我们默认的滤镜浓度是0.5,如果您觉得滤镜效果不明显,可以使用下面的接口进行调节。

弃用:
v7.2 版本弃用,请使用 TXBeautyManager setFilterStrength 接口
参数
concentration从0到1,越大滤镜效果越明显,默认值为0.5。

◆ setGreenScreenFile()

- (void) setGreenScreenFile: (NSURL *)  file

设置绿幕背景视频(企业版有效,其它版本设置此参数无效)

此处的绿幕功能并非智能抠背,需要被拍摄者的背后有一块绿色的幕布来辅助产生特效

弃用:
v7.2 版本弃用,请使用 TXBeautyManager 设置绿幕背景视频
参数
file视频文件路径。支持 MP4; nil 表示关闭特效。

◆ playBGM()

- (void) playBGM: (NSString *)  path
withBeginNotify: (void(^)(NSInteger errCode))  beginNotify
withProgressNotify: (void(^)(NSInteger progressMS, NSInteger durationMS))  progressNotify
andCompleteNotify: (void(^)(NSInteger errCode))  completeNotify 

启动播放背景音乐

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager startPlayMusic 接口,支持并发播放多个 BGM
参数
path音乐文件路径,支持的文件格式:aac, mp3, m4a。
beginNotify音乐播放开始的回调通知
progressNotify音乐播放的进度通知,单位毫秒
completeNotify音乐播放结束的回调通知

◆ stopBGM()

- (void) stopBGM

停止播放背景音乐

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager stopPlayMusic 接口

◆ pauseBGM()

- (void) pauseBGM

暂停播放背景音乐

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager pausePlayMusic 接口

◆ resumeBGM()

- (void) resumeBGM

继续播放背景音乐

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager resumePlayMusic 接口

◆ getBGMDuration()

- (NSInteger) getBGMDuration: (NSString *)  path

获取音乐文件总时长,单位毫秒

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager getMusicDurationInMS 接口
参数
path音乐文件路径,如果 path 为空,那么返回当前正在播放的 music 时长。
返回
成功返回时长,失败返回-1

◆ setBGMPosition()

- (int) setBGMPosition: (NSInteger)  pos

设置 BGM 播放进度

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager seekMusicToPosInMS 接口
参数
pos单位毫秒
返回
0:成功;-1:失败

◆ setBGMVolume()

- (void) setBGMVolume: (NSInteger)  volume

设置背景音乐播放音量的大小

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager setMusicVolume 接口 播放背景音乐混音时使用,用来控制背景音乐播放音量的大小, 该接口会同时控制远端播放音量的大小和本地播放音量的大小, 因此调用该接口后,setBGMPlayoutVolume和setBGMPublishVolume设置的音量值会被覆盖
参数
volume音量大小,100为正常音量,取值范围为0 - 100;默认值:100

◆ setBGMPlayoutVolume()

- (void) setBGMPlayoutVolume: (NSInteger)  volume

设置背景音乐本地播放音量的大小

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager setMusicPlayoutVolume 接口 播放背景音乐混音时使用,用来控制背景音乐在本地播放时的音量大小。
参数
volume音量大小,100为正常音量,取值范围为0 - 100;默认值:100

◆ setBGMPublishVolume()

- (void) setBGMPublishVolume: (NSInteger)  volume

设置背景音乐远端播放音量的大小

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager setMusicPublishVolume 接口 播放背景音乐混音时使用,用来控制背景音乐在远端播放时的音量大小。
参数
volume音量大小,100为正常音量,取值范围为0 - 100;默认值:100

◆ setReverbType()

- (void) setReverbType: (TRTCReverbType reverbType

设置混响效果,目前仅支持 iOS

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager setVoiceReverbType 接口
参数
reverbType混响类型,详情请参见 TXReverbType

◆ setVoiceChangerType()

- (void) setVoiceChangerType: (TRTCVoiceChangerType voiceChangerType

设置变声类型,目前仅支持 iOS

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager setVoiceChangerType 接口
参数
voiceChangerType变声类型,详情请参见 TXVoiceChangerType

◆ playAudioEffect()

- (void) playAudioEffect: (TRTCAudioEffectParam *)  effect

播放音效

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager startPlayMusic 接口 每个音效都需要您指定具体的 ID,您可以通过该 ID 对音效的开始、停止、音量等进行设置。 支持的文件格式:aac, mp3, m4a。
注意
若您想同时播放多个音效,请分配不同的 ID 进行播放。因为使用同一个 ID 播放不同音效,SDK 会先停止播放旧的音效,再播放新的音效。
参数
effect音效

◆ setAudioEffectVolume()

- (void) setAudioEffectVolume: (int)  effectId
volume: (int)  volume 

设置音效音量

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager setMusicPublishVolume / setMusicPlayoutVolume 接口
注意
该操作会覆盖通过 setAllAudioEffectsVolume 指定的整体音效音量。
参数
effectId音效 ID
volume音量大小,取值范围为0 - 100;默认值:100

◆ stopAudioEffect()

- (void) stopAudioEffect: (int)  effectId

停止音效

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager stopPlayMusic 接口
参数
effectId音效 ID

◆ stopAllAudioEffects()

- (void) stopAllAudioEffects

停止所有音效

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager stopPlayMusic 接口

◆ setAllAudioEffectsVolume()

- (void) setAllAudioEffectsVolume: (int)  volume

设置所有音效音量

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager setMusicPublishVolume / setMusicPlayoutVolume 接口
注意
该操作会覆盖通过 setAudioEffectVolume 指定的单独音效音量。
参数
volume音量大小,取值范围为0 - 100;默认值:100

◆ pauseAudioEffect()

- (void) pauseAudioEffect: (int)  effectId

暂停音效

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager pausePlayMusic 接口
参数
effectId音效 ID

◆ resumeAudioEffect()

- (void) resumeAudioEffect: (int)  effectId

恢复音效

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager resumePlayMusic 接口
参数
effectId音效 ID

◆ enableAudioEarMonitoring()

- (void) enableAudioEarMonitoring: (BOOL)  enable

开启耳返

弃用:
v7.3 版本弃用,请使用 TXAudioEffectManager setVoiceEarMonitor 接口 开启后会在耳机里听到自己的声音。
注意
仅在戴耳机时有效
参数
enableYES:开启;NO:关闭,默认值:NO

属性说明

◆ delegate

- (id<TRTCCloudDelegate>) delegate
readwritenonatomicweak

设置回调接口 TRTCCloudDelegate

您可以通过 TRTCCloudDelegate 获得来自 SDK 的各种状态通知,详见 TRTCCloudDelegate.h 中的定义

◆ delegateQueue

- (dispatch_queue_t) delegateQueue
readwritenonatomicstrong

设置驱动 TRTCCloudDelegate 回调的队列

SDK 默认会采用 Main Queue 作为驱动 TRTCCloudDelegate。如果您不指定自己的 delegateQueue, SDK 的 TRTCCloudDelegate 回调都将由 Main Queue 来调用。此时您在 TRTCCloudDelegate 的回调函数里操作 UI 是线程安全的。