函数列表 | 描述 |
创建 TRTCCloud 实例(单例模式)。 | |
销毁 TRTCCloud 实例(单例模式)。 | |
添加 TRTC 事件回调。 | |
移除 TRTC 事件回调。 | |
设置驱动 TRTCCloudDelegate 事件回调的队列。 | |
进入房间。 | |
离开房间。 | |
切换角色。 | |
切换角色(支持设置权限位)。 | |
切换房间。 | |
请求跨房通话。 | |
退出跨房通话。 | |
设置订阅模式(需要在进入房前设置才能生效)。 | |
创建子房间实例(用于多房间并发观看)。 | |
销毁子房间实例。 | |
更改跨房主播在本房间的上行能力。 | |
开始发布媒体流。 | |
更新发布媒体流。 | |
停止发布媒体流。 | |
开启本地摄像头的预览画面(移动端)。 | |
开启本地摄像头的预览画面(桌面端)。 | |
更新本地摄像头的预览画面。 | |
停止摄像头预览。 | |
暂停/恢复发布本地的视频流。 | |
设置本地画面被暂停期间的替代图片。 | |
订阅远端用户的视频流,并绑定视频渲染控件。 | |
更新远端用户的视频渲染控件。 | |
停止订阅远端用户的视频流,并释放渲染控件。 | |
停止订阅所有远端用户的视频流,并释放全部渲染资源。 | |
暂停/恢复订阅远端用户的视频流。 | |
暂停/恢复订阅所有远端用户的视频流。 | |
设置视频编码器的编码参数。 | |
设置网络质量控制的相关参数。 | |
设置本地画面的渲染参数。 | |
设置远端画面的渲染模式。 | |
开启大小画面双路编码模式。 | |
切换指定远端用户的大小画面。 | |
视频画面截图。 | |
视频画面透视校正坐标设置。 | |
设置重力感应的适配模式(11.7 及以上版本)。 | |
开启本地音频的采集和发布。 | |
停止本地音频的采集和发布。 | |
暂停/恢复发布本地的音频流。 | |
暂停/恢复播放远端的音频流。 | |
暂停/恢复播放所有远端用户的音频流。 | |
设置音频路由。 | |
设定某一个远端用户的声音播放音量。 | |
设定本地音频的采集音量。 | |
获取本地音频的采集音量。 | |
设定远端音频的播放音量。 | |
获取远端音频的播放音量。 | |
启用音量大小提示。 | |
开始录音。 | |
停止录音。 | |
开启本地媒体录制。 | |
停止本地媒体录制。 | |
设置远端音频流智能并发播放策略。 | |
启用 3D 音效。 | |
设置 3D 音效中自身坐标及朝向信息。 | |
设置 3D 音效中远端用户坐标信息。 | |
设置指定用户所发出声音的可被接收范围。 | |
获取设备管理类(TXDeviceManager)。 | |
获取美颜管理类(TXBeautyManager)。 | |
添加水印。 | |
获取音效管理类(TXAudioEffectManager)。 | |
开启系统声音采集(iOS 端暂未支持)。 | |
停止系统声音采集(iOS 端暂未支持)。 | |
设置系统声音的采集音量。 | |
开始应用内的屏幕分享(仅支持 iOS 13.0 及以上系统)。 | |
开始全系统的屏幕分享(仅支持 iOS 11.0 及以上系统)。 | |
启动屏幕分享。 | |
停止屏幕分享。 | |
暂停屏幕分享。 | |
恢复屏幕分享。 | |
枚举可分享的屏幕和窗口(该接口仅支持 Mac OS 系统)。 | |
选取要分享的屏幕或窗口(该接口仅支持 Mac OS 系统)。 | |
设置屏幕分享(即辅路)的视频编码参数(桌面系统和移动系统均已支持)。 | |
设置屏幕分享时的混音音量大小(该接口仅支持桌面系统)。 | |
将指定窗口加入屏幕分享的排除列表中(该接口仅支持桌面系统)。 | |
将指定窗口从屏幕分享的排除列表中移除(该接口仅支持桌面系统)。 | |
将所有窗口从屏幕分享的排除列表中移除(该接口仅支持桌面系统)。 | |
将指定窗口加入屏幕分享的包含列表中(该接口仅支持桌面系统)。 | |
将指定窗口从屏幕分享的包含列表中移除(该接口仅支持桌面系统)。 | |
将全部窗口从屏幕分享的包含列表中移除(该接口仅支持桌面系统)。 | |
启用/关闭视频自定义采集模式。 | |
向 SDK 投送自己采集的视频帧。 | |
启用音频自定义采集模式。 | |
向 SDK 投送自己采集的音频数据。 | |
启用/关闭自定义音轨。 | |
向 SDK 混入自定义音轨。 | |
设置推流时混入外部音频的推流音量和播放音量。 | |
生成自定义采集时的时间戳。 | |
设置第三方美颜的视频数据回调。 | |
设置本地视频自定义渲染回调。 | |
设置远端视频自定义渲染回调。 | |
设置音频数据自定义回调。 | |
设置本地麦克风采集出的音频帧回调格式。 | |
设置经过前处理后的本地音频帧回调格式。 | |
设置最终要由系统播放出的音频帧回调格式。 | |
开启音频自定义播放。 | |
获取可播放的音频数据。 | |
使用 UDP 通道发送自定义消息给房间内所有用户。 | |
使用 SEI 通道发送自定义消息给房间内所有用户。 | |
开始进行网速测试(进入房间前使用)。 | |
停止网络测速。 | |
获取 SDK 版本信息。 | |
设置 Log 输出级别。 | |
启用/禁用控制台日志打印。 | |
启用/禁用日志的本地压缩。 | |
设置本地日志的保存路径。 | |
设置日志回调。 | |
显示仪表盘。 | |
设置仪表盘的边距。 | |
调用实验性接口。 | |
开启或关闭媒体流私有加密。 |
- (void)addDelegate: |
- (void)enterRoom: | |
appScene: |
result 会是一个正数(result > 0),表示从函数调用到进入房间所花费的时间,单位是毫秒(ms)。 result 会是一个负数(result < 0),表示进房失败的错误码。参数 | 描述 |
param | |
scene |
scene 。不同的 scene 会导致偶现的异常问题。 scene 为 TRTCAppSceneLIVE 或 TRTCAppSceneVoiceChatRoom 时,您必须通过 TRTCParams 中的 role 字段为当前用户设定他/她在房间中的角色。-(void)switchRole: |
参数 | 描述 |
role | 角色,默认为 主播。 TRTCRoleAnchor :主播,可以发布自己的音视频,同一个房间里最多支持50个主播同时发布音视频。 TRTCRoleAudience :观众,不能发布自己的音视频流,只能观看房间中其他主播的音视频。如果要发布自己的音视频,需要先通过 switchRole 切换成 主播,同一个房间内同时最多可以容纳 10 万名观众。 |
-(void)switchRole: | |
privateMapKey: | (NSString*)privateMapKey |
参数 | 描述 |
privateMapKey | 用于权限控制的权限票据,当您希望某个房间只能让特定的 userId 进入或者上行视频时,需要使用 privateMapKey 进行权限保护。 仅建议有高级别安全需求的客户使用,更多详情请参见 开启高级权限控制。 |
role | 角色,默认为 主播。 TRTCRoleAnchor :主播,可以发布自己的音视频,同一个房间里最多支持50个主播同时发布音视频。 TRTCRoleAudience :观众,不能发布自己的音视频流,只能观看房间中其他主播的音视频。如果要发布自己的音视频,需要先通过 switchRole 切换成 主播,同一个房间内同时最多可以容纳 10 万名观众。 |
- (void)switchRoom: |
exitRoom(当前房间) + enterRoom(新的房间) 。 switchRoom 可以获得比 exitRoom + enterRoom 更好的流畅性和更少的代码量。参数 | 描述 |
config |
config 中同时包含 roomId 与 strRoomId 两个参数,这两个参数的填写格外讲究,请注意如下事项: strRoomId ,则 roomId 需要填写为0。若两者都填,将优先选用 roomId 。 strRoomId 或同时使用 roomId ,不可混用,否则将会出现很多预期之外的 bug。- (void)connectOtherRoom: | (NSString *)param |
connectOtherRoom() 跟房间“102”中的主播 B 建立跨房通话后, onRemoteUserEnterRoom(B) 和 onUserVideoAvailable(B,YES) 这两个事件回调,即房间“101”中的用户都可以订阅主播 B 的音视频。 onRemoteUserEnterRoom(A) 和 onUserVideoAvailable(A,YES) 这两个事件回调,即房间“102”中的用户都可以订阅主播 A 的音视频。
{"roomId": 102, "userId": "userB"} NSMutableDictionaryjsonDict = [[NSMutableDictionary alloc] init];[jsonDict setObject:@(102) 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];
{"strRoomId": "102", "userId": "userB"} NSMutableDictionaryjsonDict = [[NSMutableDictionary alloc] init];[jsonDict setObject:@"102" forKey:@"strRoomId"];[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];
参数 | 描述 |
param | 需要你传入 JSON 格式的字符串参数, roomId 代表数字格式的房间号, strRoomId 代表字符串格式的房间号, userId 代表目标主播的用户 ID。 |
- (void)setDefaultStreamRecvMode: | (BOOL)autoRecvAudio |
video: | (BOOL)autoRecvVideo |
参数 | 描述 |
autoRecvAudio | YES:自动订阅音频;NO:需手动调用 muteRemoteAudio(NO) 订阅音频。默认值:YES。 |
autoRecvVideo | YES:自动订阅视频;NO:需手动调用 startRemoteView 订阅视频。默认值:YES。 |
//In the small room that needs interaction, enter the room as an anchor and push audio and video streamsTRTCCloud *mainCloud = [TRTCCloud sharedInstance];TRTCParams *mainParams = [[TRTCParams alloc] init];//Fill your paramsmainParams.role = TRTCRoleAnchor;[mainCloud enterRoom:mainParams appScene:TRTCAppSceneLIVE)];//...[mainCloud startLocalPreview:YES view:videoView];[mainCloud startLocalAudio:TRTCAudioQualityDefault];//In the large room that only needs to watch, enter the room as an audience and pull audio and video streamsTRTCCloud *subCloud = [mainCloud createSubCloud];TRTCParams *subParams = [[TRTCParams alloc] init];//Fill your paramssubParams.role = TRTCRoleAudience;[subCloud enterRoom:subParams appScene:TRTCAppSceneLIVE)];//...[subCloud startRemoteView:userId streamType:TRTCVideoStreamTypeBig view:videoView];//...//Exit from new room and release it.[subCloud exitRoom];[mainCloud destroySubCloud:subCloud];
- (void)updateOtherRoomForwardMode: | (NSString *)param |
onRemoteUserEnterRoom(C) , onUserVideoAvailable(C,YES) 和 onUserAudioAvailable(C,YES) 这三个事件回调,可以订阅主播 C 的音视频。 onUserAudioAvailable(C,NO) 事件回调,且无法再通过 muteRemoteAudio(C,NO) 订阅主播 C 的音频。{"roomId":102,"userId":"userC","muteAudio":false,"muteVideo":true,"muteSubStream":false}
{"strRoomId":"102","userId":"userC","muteAudio":false,"muteVideo":true,"muteSubStream":false}
参数 | 描述 |
param | 需要你传入 JSON 格式的字符串参数, roomId 代表数字格式的房间号, strRoomId 代表字符串格式的房间号, userId 代表目标主播的用户 ID, muteAudio , muteVideo , muteSubStream 均为可选项,分表代表禁止或允许跨房主播发布音频/主路视频/辅路视频的能力。 |
- (void)startPublishMediaStream: | |
encoderParam: | |
mixingConfig: |
参数 | 描述 |
config | |
params | 媒体流编码输出参数,具体配置参考 TRTCStreamEncoderParam。转码和回推到 TRTC 房间中时为必填项,您需要指定您预期的转码输出参数。在转推时,为了更好的转推稳定性和 CDN 兼容性,也建议您进行配置。 |
target |
target 支持同时配置多个 CDN URL(最多同时 10 个)。若您的同一个转推/转码任务需要发布至多路 CDN,则仅需要在 target 中配置多个 CDN URL 即可。同一个转码任务即使有多个转推地址,对应的转码计费仍只收取一份。- (void)updatePublishMediaStream: | (NSString *)taskId |
publishTarget: | |
encoderParam: | |
mixingConfig: |
参数 | 描述 |
config | |
params | 媒体流编码输出参数,具体配置参考 TRTCStreamEncoderParam。转码和回推到 TRTC 房间中时为必填项,您需要指定您预期的转码输出参数。在转推时,为了更好的转推稳定性和 CDN 兼容性,也建议您进行配置。 |
target | |
taskId |
taskId 来更新调整转推/转码任务。例如在 pk 业务中,您可以先通过 startPublishMediaStream 发起转推,接着在主播发起 pk 时,通过 taskId 和本接口将转推更新为转码任务。此时,CDN 播放将连续并且不会发生断流(您需要保持媒体流编码输出参数 param 一致)。- (void)stopPublishMediaStream: | (NSString *)taskId |
参数 | 描述 |
taskId |
taskId ,在您的主播异常退房重进后,如果您需要重新获取 taskId ,您可以再次调用 startPublishMediaStream 启动任务。此时 TRTC 后台会返回任务启动失败,同时带给您上一次启动的 taskId 。 taskId 填空字符串,将会停止该用户所有通过 startPublishMediaStream 启动的媒体流,如果您只启动了一个媒体流或者想停止所有通过您启动的媒体流,推荐使用这种方式。- (void)startLocalPreview: | (BOOL)frontCamera |
view: | (nullable TXView *)view |
参数 | 描述 |
frontCamera | YES:前置摄像头;NO:后置摄像头。 |
view | 承载视频画面的控件。 |
- (void)startLocalPreview: | (nullable TXView *)view |
参数 | 描述 |
view | 承载视频画面的控件。 |
- (void)updateLocalView: | (nullable TXView *)view |
- (void)muteLocalVideo: | |
mute: | (BOOL)mute |
startLocalPreview + stopLocalPreview 需要打开和关闭摄像头,而打开和关闭摄像头都是硬件设备相关的操作,非常耗时。 muteLocalVideo 只需要在软件层面对数据流进行暂停或者放行即可,因此效率更高,也更适合需要频繁打开关闭的场景。参数 | 描述 |
mute | YES:暂停;NO:恢复。 |
streamType |
- (void)setVideoMuteImage: | (nullable TXImage *)image |
fps: | (NSInteger)fps |
muteLocalVideo(YES) 暂停本地画面时,您可以通过调用本接口设置一张替代图片,设置后,房间中的其他用户会看到这张替代图片,而不是黑屏画面。参数 | 描述 |
fps | 设置替代图片帧率,最小值为5,最大值为10,默认5。 |
image |
- (void)startRemoteView: | (NSString *)userId |
streamType: | |
view: | (nullable TXView *)view |
startRemoteView 订阅该用户的画面。参数 | 描述 |
streamType | 指定要观看 userId 的视频流类型。 高清大画面:TRTCVideoStreamTypeBig。 低清小画面:TRTCVideoStreamTypeSmall(需要远端用户通过 enableEncSmallVideoStream 开启双路编码后才有效果)。 辅流画面(常用于屏幕分享):TRTCVideoStreamTypeSub。 |
userId | 指定远端用户的 ID。 |
view | 用于承载视频画面的渲染控件。 |
- (void)updateRemoteView: | (nullable TXView *)view |
streamType: | |
forUser: | (NSString *)userId |
参数 | 描述 |
streamType | |
userId | 指定远端用户的 ID。 |
view | 承载视频画面的控件。 |
- (void)stopRemoteView: | (NSString *)userId |
streamType: |
参数 | 描述 |
streamType | 指定要观看 userId 的视频流类型。 高清大画面:TRTCVideoStreamTypeBig。 低清小画面:TRTCVideoStreamTypeSmall。 辅流画面(常用于屏幕分享):TRTCVideoStreamTypeSub。 |
userId | 指定远端用户的 ID。 |
- (void)muteRemoteVideoStream: | (NSString*)userId |
streamType: | |
mute: | (BOOL)mute |
参数 | 描述 |
mute | 是否暂停接收。 |
streamType | 要暂停/恢复的视频流类型。 高清大画面:TRTCVideoStreamTypeBig。 低清小画面:TRTCVideoStreamTypeSmall。 辅流画面(常用于屏幕分享):TRTCVideoStreamTypeSub。 |
userId | 指定远端用户的 ID。 |
- (void)muteAllRemoteVideoStreams: | (BOOL)mute |
参数 | 描述 |
mute | 是否暂停接收。 |
- (void)setVideoEncoderParam: |
参数 | 描述 |
param |
- (void)setNetworkQosParam: |
参数 | 描述 |
param |
- (void)setLocalRenderParams: |
- (void)setRemoteRenderParams: | (NSString *)userId |
streamType: | |
params: |
参数 | 描述 |
params | |
streamType | |
userId | 指定远端用户的 ID。 |
- (int)enableEncSmallVideoStream: | (BOOL)enable |
withQuality: |
参数 | 描述 |
enable | 是否开启小画面编码,默认值:NO。 |
smallVideoEncParam | 小流的视频参数。 |
- (void)setRemoteVideoStreamType: | (NSString*)userId |
type: |
参数 | 描述 |
streamType | 视频流类型,即选择看大画面还是小画面,默认为大画面。 |
userId | 指定远端用户的 ID。 |
- (void)snapshotVideo: | (nullable NSString *)userId |
type: | |
sourceType: |
参数 | 描述 |
sourceType | 画面来源,可选择截取视频流画面(TRTCSnapshotSourceTypeStream)、视频渲染画面(TRTCSnapshotSourceTypeView)或 采集画面(TRTCSnapshotSourceTypeCapture),采集画面截图更清晰。 |
streamType | |
userId | 用户 ID,如指定空置表示截取本地的视频画面。 |
- (void)setPerspectiveCorrectionWithUser: | (nullable NSString *)userId |
srcPoints: | (nullable NSArray *)srcPoints |
dstPoints: | (nullable NSArray *)dstPoints |
参数 | 描述 |
dstPoints | 期望校正到的目标坐标区域4个顶点坐标,需按照左上、左下、右上、右下的顺序传入,所有的坐标需要根据画面宽高做 [0,1] 区间的归一化;传 null 则停止透视校正。 |
srcPoints | 原始画面坐标区域4个顶点坐标,需按照左上、左下、右上、右下的顺序传入,所有的坐标需要根据画面宽高做 [0,1] 区间的归一化; 传 null 则停止透视校正。 |
userId | 用户 ID,如指定空值表示校正本地的视频画面。 |
- (void)setGravitySensorAdaptiveMode: |
- (void)startLocalAudio: |
参数 | 描述 |
quality | 声音音质 TRTCAudioQualitySpeech,流畅:单声道;音频裸码率:18kbps;适合语音通话为主的场景,比如在线会议,语音通话。 TRTCAudioQualityDefault,默认:单声道;音频裸码率:50kbps;SDK 默认的音频质量,如无特殊需求推荐选择之。 TRTCAudioQualityMusic,高音质:双声道 + 全频带;音频裸码率:128kbps;适合需要高保真传输音乐的场景,比如在线K歌、音乐直播等。 |
- (void)muteLocalAudio: | (BOOL)mute |
参数 | 描述 |
mute | YES:静音;NO:恢复。 |
- (void)muteRemoteAudio: | (NSString *)userId |
mute: | (BOOL)mute |
- (void)muteAllRemoteAudio: | (BOOL)mute |
- (void)setAudioRoute: |
参数 | 描述 |
route |
- (void)setRemoteAudioVolume: | (NSString *)userId |
volume: | (int)volume |
setRemoteAudioVolume(userId, 0) 将某一个远端用户的声音静音。参数 | 描述 |
userId | 用于指定远端用户的 ID。 |
volume | 音量大小,取值范围为 [0, 150],默认值:100。 |
volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。- (void)setAudioCaptureVolume: | (NSInteger)volume |
参数 | 描述 |
volume | 音量大小,取值范围为 [0, 150];默认值:100。 |
volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。- (void)setAudioPlayoutVolume: | (NSInteger)volume |
参数 | 描述 |
volume | 音量大小,取值范围为 [0, 150],默认值:100。 |
- (void)enableAudioVolumeEvaluation: | (BOOL)enable |
withParams: |
参数 | 描述 |
enable | 是否启用音量提示,默认为关闭状态。 |
params |
- (int)startAudioRecording: |
参数 | 描述 |
param |
- (void)startLocalRecording: |
- (void)setRemoteAudioParallelParams: |
- (void)enable3DSpatialAudioEffect: | (BOOL)enabled |
参数 | 描述 |
enabled | 是否启用 3D 音效,默认为关闭状态。 |
参数 | 描述 |
axisForward | 自身坐标系前轴在世界坐标系中的单位向量,三个值依次表示前、右、上坐标值。 |
axisRight | 自身坐标系右轴在世界坐标系中的单位向量,三个值依次表示前、右、上坐标值。 |
axisUp | 自身坐标系上轴在世界坐标系中的单位向量,三个值依次表示前、右、上坐标值。 |
position | 自身在世界坐标系中的坐标,三个值依次表示前、右、上坐标值。 |
- (void)updateRemote3DSpatialPosition: | (NSString *)userId |
参数 | 描述 |
position | 该远端用户在世界坐标系中的坐标,三个值依次表示前、右、上坐标值。 |
userId | 指定远端用户的 ID。 |
- (void)set3DSpatialReceivingRange: | (NSString *)userId |
range: | (NSInteger)range |
参数 | 描述 |
range | 声音最大可被接收范围。 |
userId | 指定远端用户的 ID。 |
- (void)setWatermark: | (nullable TXImage*)image |
streamType: | |
rect: | (CGRect)rect |
540 × 0.2 = 108px ,水印的高度会根据水印图片的宽高比由 SDK 自动算出。参数 | 描述 |
image | 水印图片,必须使用透明底色的 png 格式。 |
rect | 水印相对于编码分辨率的归一化坐标,x,y,width,height 取值范围 [0, 1]。 |
streamType |
streamType 。- (void)setSystemAudioLoopbackVolume: | (uint32_t)volume |
参数 | 描述 |
volume | 设置的音量大小,范围是:[0, 150],默认值为 100。 |
- (void)startScreenCaptureInApp: | |
encParam: |
参数 | 描述 |
encParams | 设置屏幕分享时的视频编码参数,推荐采用上述推荐配置。 如果您指定 encParams 为 nil,SDK 会使用您在调用 startScreenCapture 接口之前所设置的视频编码参数。 |
streamType | 屏幕分享使用的线路,可以设置为主路(TRTCVideoStreamTypeBig)或者辅路(TRTCVideoStreamTypeSub)。 |
- (void)startScreenCaptureByReplaykit: | |
encParam: | |
appGroup: | (NSString *)appGroup |
参数 | 描述 |
appGroup | 用于指定您的应用与录屏进程共享的 Application Group Identifier,您可以指定该参数为 nil,但推荐您按照文档指示进行设置,从而获得更好的可靠性。 |
encParams | 设置屏幕分享时的视频编码参数,推荐采用上述推荐配置。如果您指定 encParams 为 nil,SDK 会使用您在调用 startScreenCapture 接口之前所设置的视频编码参数。 |
streamType | 屏幕分享使用的线路,可以设置为主路(TRTCVideoStreamTypeBig)或者辅路(TRTCVideoStreamTypeSub)。 |
- (void)startScreenCapture: | (nullable NSView *)view |
streamType: | |
encParam: |
参数 | 描述 |
encParam | 屏幕分享的画面编码参数,SDK 会优先使用您通过此接口设置的编码参数: 如果您设置 encParam 为空值,且您已通过 setSubStreamEncoderParam 设置过辅路视频编码参数,SDK 将使用您设置过的辅路编码参数进行屏幕分享。 如果您设置 encParam 为空值,且您未通过 setSubStreamEncoderParam 设置过辅路视频编码参数,SDK 将自动选择一个最佳的编码参数进行屏幕分享。 |
streamType | 屏幕分享使用的线路,可以设置为主路(TRTCVideoStreamTypeBig)或者辅路(TRTCVideoStreamTypeSub),推荐使用辅路。 |
view | 渲染控件所在的父控件,可以设置为空值,表示不显示屏幕分享的预览效果。 |
onError(ERR_SERVER_CENTER_ANOTHER_USER_PUSH_SUB_VIDEO) 回调。- (NSArray<TRTCScreenCaptureSourceInfo*>*)getScreenCaptureSourcesWithThumbnailSize: | (CGSize)thumbnailSize |
iconSize: | (CGSize)iconSize |
参数 | 描述 |
iconSize | 指定要获取的窗口图标大小。 |
thumbnailSize | 指定要获取的窗口缩略图大小,缩略图可用于绘制在窗口选择界面上。 |
- (void)selectScreenCaptureTarget: | |
rect: | (CGRect)rect |
capturesCursor: | (BOOL)capturesCursor |
highlight: | (BOOL)highlight |
参数 | 描述 |
capturesCursor | 是否捕获鼠标光标。 |
highlight | 是否高亮正在分享的窗口。 |
rect | 指定捕获的区域(设定该参数为 CGRectZero:当分享目标是某个窗口时则分享整个窗口,当分享目标是桌面时则分享整个桌面)。 |
screenSource | 指定分享源。 |
- (void)setSubStreamEncoderParam: |
参数 | 描述 |
param |
- (void)setSubStreamMixVolume: | (NSInteger)volume |
参数 | 描述 |
volume | 设置的混音音量大小,范围 [0, 150]。 |
- (void)addExcludedShareWindow: | (NSInteger)windowID |
参数 | 描述 |
windowID | 不希望分享出去的窗口 |
- (void)removeExcludedShareWindow: | (NSInteger)windowID |
参数 | 描述 |
windowID | 要排除的窗口 id。 |
- (void)addIncludedShareWindow: | (NSInteger)windowID |
参数 | 描述 |
windowID | 希望被分享出去的窗口(Windows 平台下为窗口句柄: HWND) |
- (void)removeIncludedShareWindow: | (NSInteger)windowID |
参数 | 描述 |
windowID | 希望被分享出去的窗口(Mac 平台:窗口 ID;Windows 平台:HWND) |
- (void)enableCustomVideoCapture: | |
enable: | (BOOL)enable |
参数 | 描述 |
enable | 是否启用视频自定义采集,默认值:NO。 |
streamType |
- (void)sendCustomVideoData: | |
frame: |
参数 | 描述 |
frame | 视频数据,bufferType 推荐选择 TRTCVideoBufferType_PixelBuffer,pixelFormat 推荐选择 TRTCVideoPixelFormat_NV12,更多支持格式参考 TRTCVideoFrame。 |
streamType |
- (void)enableCustomAudioCapture: | (BOOL)enable |
参数 | 描述 |
enable | 是否启用音频自定义采集模式,默认值:NO。 |
- (void)sendCustomAudioData: |
48000 × 0.02s × 1 × 16bit = 15360bit = 1920字节 。参数 | 描述 |
frame | 音频数据 |
- (void)enableMixExternalAudioFrame: | (BOOL)enablePublish |
playout: | (BOOL)enablePlayout |
参数 | 描述 |
enablePlayout | 控制混入的音轨是否要在本地播放,默认值:NO。 |
enablePublish | 控制混入的音轨是否要在远端播放,默认值:NO。 |
enablePublish 和 enablePlayout 均为 NO,代表完全关闭您的自定义音轨。- (int)mixExternalAudioFrame: |
48000 × 0.02s × 1 × 16bit = 15360bit = 1920字节 。参数 | 描述 |
frame | 音频数据 |
mixExternalAudioFrame )- (void)setMixExternalAudioVolume: | (NSInteger)publishVolume |
playoutVolume: | (NSInteger)playoutVolume |
参数 | 描述 |
playoutVolume | 设置的播放音量大小,范围 [0, 150],-1 表示不改变。 |
publishVolume | 设置的推流音量大小,范围 [0, 150],-1 表示不改变。 |
- (int)setLocalVideoProcessDelegete: | |
pixelFormat: | |
bufferType: |
参数 | 描述 |
bufferType | |
delegate | |
pixelFormat |
- (int)setLocalVideoRenderDelegate: | |
pixelFormat: | |
bufferType: |
参数 | 描述 |
bufferType | PixelBuffer:可以直接使用 imageWithCVImageBuffer 转成 UIImage;NSData:经过内存整理的视频数据。 |
delegate | 自定义渲染回调。 |
pixelFormat | 指定回调的像素格式。 |
- (int)setRemoteVideoRenderDelegate: | (NSString*)userId |
delegate: | |
pixelFormat: | |
bufferType: |
参数 | 描述 |
bufferType | PixelBuffer:可以直接使用 imageWithCVImageBuffer 转成 UIImage;NSData:经过内存整理的视频数据。 |
delegate | 自定义渲染回调 |
pixelFormat | 指定回调的像素格式 |
userId | 指定远端用户的 ID |
startRemoteView(nil) 来获取远端用户的视频流(view 设置为 nil 即可),否则不会有数据回调出来。- (void)setAudioFrameDelegate: |
- (int)setCapturedAudioFrameDelegateFormat: |
采样点数 = 毫秒数 * 采样率 / 1000 。 960 = 20 * 48000 / 1000 。参数 | 描述 |
format | 音频数据回调格式。 |
字节数 = 采样点数 * channel * 2(位宽) 。举例:48000Hz 采样率,双声道,20ms 帧长,采样点数为 960,字节数为 3840 = 960 * 2 * 2 。- (int)setLocalProcessedAudioFrameDelegateFormat: |
采样点数 = 毫秒数 * 采样率 / 1000 。 960 = 20 * 48000 / 1000 。参数 | 描述 |
format | 音频数据回调格式。 |
字节数 = 采样点数 * channel * 2(位宽) 。 举例:48000Hz 采样率,双声道,20ms 帧长,采样点数为 960,字节数为 3840 = 960 * 2 * 2 。- (int)setMixedPlayAudioFrameDelegateFormat: |
采样点数 = 毫秒数 * 采样率 / 1000 。 960 = 20 * 48000 / 1000 。参数 | 描述 |
format | 音频数据回调格式。 |
字节数 = 采样点数 * channel * 2(位宽) 。 举例:48000Hz 采样率,双声道,20ms 帧长,采样点数为 960,字节数为 3840 = 960 * 2 * 2 。- (void)enableCustomAudioRendering: | (BOOL)enable |
参数 | 描述 |
enable | 是否启用音频自定义播放,默认为关闭状态。 |
- (void)getCustomAudioRenderingFrame: |
采样率 x 播放时长 x 声道数量 x 2(每个样点的字节数) , 例如: 48000Hz 采样率、单声道、且播放时长为 20ms 的一帧音频帧的 buffer 大小为 48000 × 0.02s × 1 × 16bit = 15360bit = 1920字节 。参数 | 描述 |
audioFrame | 音频数据帧。 |
- (BOOL)sendCustomCmdMsg: | (NSInteger)cmdID |
data: | (NSData *)data |
reliable: | (BOOL)reliable |
ordered: | (BOOL)ordered |
参数 | 描述 |
cmdID | 消息 ID,取值范围为 [1, 10]。 |
data | 待发送的消息,单个消息的最大长度被限制为 1KB。 |
ordered | 是否要求有序,即是否要求接收端的数据包顺序和发送端的数据包顺序一致(这会带来一定的接收延时)。 |
reliable | 是否可靠发送,可靠发送可以获得更高的发送成功率,但可靠发送比不可靠发送会带来更大的接收延迟。 |
reliable 和 ordered 同时设置为 YES 或同时设置为 NO,暂不支持交叉设置。- (BOOL)sendSEIMsg: | (NSData *)data |
repeatCount: | (int)repeatCount |
参数 | 描述 |
data | 待发送的数据,最大支持 1KB(1000字节)的数据大小 |
repeatCount | 发送数据次数 |
- (int)startSpeedTest: |
参数 | 描述 |
params | 测速选项 |
+ (void)setLogLevel: |
参数 | 描述 |
level |
+ (void)setConsoleEnabled: | (BOOL)enabled |
参数 | 描述 |
enabled | 指定是否启用,默认:禁止状态。 |
+ (void)setLogCompressEnabled: | (BOOL)enabled |
参数 | 描述 |
enabled | 指定是否启用,默认为启动状态 |
+ (void)setLogDirPath: | (NSString *)path |
参数 | 描述 |
path | 存储日志的路径 |
- (void)showDebugView: | (NSInteger)showType |
参数 | 描述 |
showType | 0:不显示;1:显示精简版(仅显示音视频信息);2:显示完整版(包含音视频信息和事件信息)。 |
- (void)setDebugViewMargin: | (NSString *)userId |
margin: | (TXEdgeInsets)margin |
参数 | 描述 |
margin | 仪表盘内边距,注意这里是基于 parentView 的百分比, margin 的取值范围是 [0, 1]。 |
userId | 用户 ID。 |
- (NSString*)callExperimentalAPI: | (NSString*)jsonStr |
- (int)enablePayloadPrivateEncryption: | (BOOL)enabled |
params: |
enablePayloadPrivateEncryption 方法开启媒体流私有加密。参数 | 描述 |
config | |
enabled | 是否开启媒体流私有加密。 |
文档反馈