API Reference for iOS - RTCEngine
# RTCEngine
# RTCEngine
说明
RtcEngine 类包含应用程序调用的主要方法。
# setDelegate
- (void)setDelegate
说明
设置Engine回调
# setVideoProcessDelegate
- (void)setVideoProcessDelegate
说明
设置视频数据回调
# setAudioProcessDelegate
- (void)setAudioProcessDelegate
说明
设置音频数据回调
# getVersion
+ (NSString *_Nonnull)getVersion
说明
获取封装层版本号
返回
SDK版本号
# initWithToken:delegate:
- (instancetype)initWithToken:(NSString*)token delegate:(id<RTCEngineDelegate>)delegate
说明
Engine 先进房间时,使用该方法初始化引擎,要跟创建 Channel 在同一个线程中调用
参数
变量名 | 类型 | 描述 |
---|---|---|
token | NSString* | 令牌 |
delegate | RTCEngineDelegate | 代理对象 |
返回
当前对象
# initWithDelegate:
- (instancetype)initWithDelegate:(id<RTCEngineDelegate>) delegate
说明
Channel 先进房间时,使用该方法初始化引擎,要跟创建 Channel 在同一个线程中调用
参数
变量名 | 类型 | 描述 |
---|---|---|
delegate | RTCEngineDelegate | 代理对象 |
返回
当前对象
# resetEngienWithToken:delegate:
- (void)resetEngienWithToken:(NSString*)token delegate:(id<RTCEngineDelegate>)delegate
说明
重置Engine房间的token,在通过 initWithDelegate: 方法先进入channel房间后,可通过该方法切换engine的token
参数
变量名 | 类型 | 描述 |
---|---|---|
token | NSString* | 令牌 |
delegate | RTCEngineDelegate | 代理对象 |
# initWithEnterConfig:delegate:
- (instancetype)initWithEnterConfig:(OmniRtcLiveEnterConfig*)enterConfig delegate:(id<RTCEngineDelegate>)delegate
说明
不使用token初始化
参数
变量名 | 类型 | 描述 |
---|---|---|
enterConfig | OmniRtcLiveEnterConfig* | 自定义参数 |
delegate | RTCEngineDelegate | 代理对象 |
返回
当前对象
# initWithAppID:engineType:roomID:uid:delegate:
- (instancetype)initWithAppID:(NSString*)appID engineType:(RTCEngineType)engineType roomID:(NSString*)roomID uid:(NSString*)userID delegate:(id<RTCEngineDelegate>)delegate
说明
不使用token初始化(培优项目使用初始化方式)
参数
变量名 | 类型 | 描述 |
---|---|---|
appID | NSString* | 应用程序标识 |
engineType | NSString* | 引擎类型 |
roomID | NSString* | 房间号 |
userID | NSString* | 用户ID |
delegate | RTCEngineDelegate | 代理对象 |
返回
当前对象
# getEngineType
- (RTCEngineType)getEngineType
说明
获取引擎类型
返回
当前对象
# setRole:
- (int)setRole:(RTCEngineClientRole)role
说明
设置用户角色
参数
变量名 | 类型 | 描述 |
---|---|---|
role | RTCEngineClientRole | 用户角色 |
返回
0表示成功
# destroy
- (void)destroy
说明
销毁引擎对象
# joinRoom
- (int)joinRoom
说明
进入房间
返回
-1: 重复进入房间会包该错误 -2: 参数无效 -3: SDK 初始化失败,请尝试重新初始化 SDK -5:调用被拒绝。可能有如下两个原因:(1)已经创建了一个同名的Channel频道;(2)已经通过 Channel 加入了一个频道,并在该 Channel 频道中发布了音视频流
# joinRoomWithRealToken:channelId:info:uid:joinSuccess:
- (int)joinRoomWithRealToken:(NSString* _Nullable)token channelId:(NSString* _Nonnull)channelId info:(NSString* _Nullable)info uid:(NSUInteger)uid joinSuccess:(void (^_Nullable)(NSString* _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock
说明
进入房间
参数
变量名 | 类型 | 描述 |
---|---|---|
token | NSString* | 验证令牌 |
channelId | NSString* | 房间号 |
info | NSString* | 自定义附加信息,一般可设置为空字符串,或频道相关信息。该信息不会传递给频道内的其他用户 |
uid | NSUInteger | 用户ID |
joinSuccessBlock | block | 成功加入频道回调,只有设置为nil, |
返回
-1:重复进入房间会包该错误 -2:参数无效 -3:SDK 初始化失败,请尝试重新初始化 SDK -5:调用被拒绝。可能有如下两个原因:(1)已经创建了一个同名的Channel频道;(2)已经通过Channel加入了一个频道,并在该Channel频道中发布了音视频流
# switchChannelWithRealToken:channelId:joinSuccess:
- (int)switchChannelWithRealToken:(NSString* _Nullable)token channelId:(NSString* _Nonnull)channelId joinSuccess:(void (^_Nullable)(NSString* _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock
说明
切换房间
参数
变量名 | 类型 | 描述 |
---|---|---|
token | NSString* | 验证令牌 |
channelId | NSString* | 房间号 |
joinSuccess | block | 成功加入频道回调,只有设置为nil, |
返回
0:成功
# switchChannelWithRealToken:channelId:options:
- (int)switchChannelWithRealToken:(NSString* _Nullable)token channelId:(NSString* _Nonnull)channelId options:(OmniRtcLiveChannelMediaOptions* _Nonnull)options
说明
切换房间
参数
变量名 | 类型 | 描述 |
---|---|---|
token | NSString* | 验证令牌 |
channelId | NSString* | 房间号 |
options | OmniRtcLiveChannelMediaOptions* | 选项参数 |
返回
0:成功
# leaveRoom
- (void)leaveRoom
说明
离开房间
# enableLocalVideo:
- (void)enableLocalVideo:(BOOL)enable
说明
开关本地视频采集
参数
变量名 | 类型 | 描述 |
---|---|---|
enable | BOOL | YES:开启本地视频采集和渲染(默认);NO:关闭使用本地摄像头设备 |
# enableLocalAudio:
- (void)enableLocalAudio:(BOOL)enable
说明
开关本地音频采集
参数
变量名 | 类型 | 描述 |
---|---|---|
enable | BOOL | YES:开启本地语音采集(默认);NO:停止本地语音采集或处理 |
# enableVideo
- (int)enableVideo
说明
开启视频模式,可以在加入频道前或者通话中调用,在加入频道前调用,则自动开启视频模式,在通话中调用则由音频模式切换为视频模式
返回
0:方法调用成功,<0:方法调用失败。
# disableVideo
- (int)disableVideo
说明
关闭视频,开启纯音频模式,可以在加入频道前或者通话中调用,在加入频道前调用,则自动开启纯音频模式,在通话中调用则由视频模式切换为纯音频频模式
返回
0:方法调用成功,<0:方法调用失败。
# enableAudio:
- (int)enableAudio:(BOOL)enable
说明
开关启用音频模块
参数
变量名 | 类型 | 描述 |
---|---|---|
enable | YES:启用音频模块(默认);NO:关闭音频模块 |
返回
0表示成功
# resumeAudio:
- (int)resumeAudio
说明
恢复音频模块
返回
0表示成功
# muteLocalVideo:
- (void)muteLocalVideo:(BOOL)isMute
说明
取消或恢复发布本地视频流
参数
变量名 | 类型 | 描述 |
---|---|---|
isMute | BOOL | YES:取消发布;NO:发布 |
# muteLocalAudio:
- (void)muteLocalAudio:(BOOL)isMute
说明
取消或恢复发布本地音频流
参数
变量名 | 类型 | 描述 |
---|---|---|
isMute | BOOL | YES:取消发布;NO:发布 |
# setDefaultMuteAllRemoteVideoStreams:
- (int)setDefaultMuteAllRemoteVideoStreams:(BOOL)isMute
说明
默认取消或恢复订阅远端用户的视频流
参数
变量名 | 类型 | 描述 |
---|---|---|
isMute | BOOL | YES:默认取消订阅;NO:(默认)默认订阅 |
返回
0表示成功
# setDefaultMuteAllRemoteAudioStreams:
- (int)setDefaultMuteAllRemoteAudioStreams:(BOOL)isMute
说明
默认取消或恢复订阅远端用户的音频流
参数
变量名 | 类型 | 描述 |
---|---|---|
isMute | BOOL | YES:默认取消订阅;NO:(默认)默认订阅 |
返回
0表示成功
# muteRemoteVideo:isMute:
- (void)muteRemoteVideo:(NSUInteger)uid isMute:(BOOL)isMute
说明
取消或恢复订阅指定远端用户的视频流
参数
变量名 | 类型 | 描述 |
---|---|---|
uid | NSUInteger | 远端用户ID |
isMute | BOOL | YES:取消订阅;NO:(默认)订阅 |
# muteRemoteAudio:isMute:
- (void)muteRemoteAudio:(NSUInteger)uid isMute:(BOOL)isMute
说明
取消或恢复订阅指定远端用户的音频流
参数
变量名 | 类型 | 描述 |
---|---|---|
uid | NSUInteger | 远端用户ID |
isMute | BOOL | YES:取消订阅;NO:(默认)订阅 |
# muteAllRemoteVideo:
- (void)muteAllRemoteVideo:(BOOL)isMute
说明
取消或恢复订阅所有远端用户的视频流
参数
变量名 | 类型 | 描述 |
---|---|---|
isMute | BOOL | YES:取消订阅;NO:(默认)订阅 |
# muteAllRemoteAudio:
- (void)muteAllRemoteAudio:(BOOL)isMute
说明
取消或恢复订阅所有远端用户的音频流
参数
变量名 | 类型 | 描述 |
---|---|---|
isMute | BOOL | YES:取消订阅;NO:(默认)订阅 |
# setupLocalVideo:
- (void)setupLocalVideo:(OmniRtcLiveView*)view
说明
设置本地视图
参数
变量名 | 类型 | 描述 |
---|---|---|
view | OmniRtcLiveView | 本地渲染视图 |
# setLocalRenderMode:
- (void)setLocalRenderMode:(RTCVideoRenderMode)mode
说明
设置本地视图显示模式
参数
变量名 | 类型 | 描述 |
---|---|---|
mode | RTCVideoRenderMode | 视图显示模式 |
# setupRemoteVideo:view:
- (void)setupRemoteVideo:(NSUInteger)uid view:(OmniRtcLiveView*)view
说明
设置远端用户视图
参数
变量名 | 类型 | 描述 |
---|---|---|
uid | NSUInteger | 远端用户ID |
view | OmniRtcLiveView* | 渲染视图 |
# setupRemoteVideo:channelID:view:
- (void)setupRemoteVideo:(NSUInteger)uid channelID:(NSString*)channelID view:(OmniRtcLiveView*)view
说明
设置Channel的渲染视图,已废弃,请使用RTCChannel代替
参数
变量名 | 类型 | 描述 |
---|---|---|
uid | NSUInteger | 远端用户ID |
channelID | NSString* | 频道名称 |
view | OmniRtcLiveView* | 渲染视图 |
# setRemoteRenderMode:mode:
- (void)setRemoteRenderMode:(NSUInteger)uid mode:(RTCVideoRenderMode)mode
说明
设置远端视图显示模式
参数
变量名 | 类型 | 描述 |
---|---|---|
uid | NSUInteger | 远端用户ID |
mode | RTCVideoRenderMode | 视图显示模式 |
# setRemoteRenderMode:renderMode:mirrorMode:
- (int)setRemoteRenderMode:(NSUInteger)uid renderMode:(RTCVideoRenderMode)renderMode mirrorMode:(OmniRtcLiveVideoMirrorMode)mirrorMode
说明
设置远端视图显示模式
参数
变量名 | 类型 | 描述 |
---|---|---|
uid | NSUInteger | 远端用户ID |
mode | RTCVideoRenderMode | 视图显示模式 |
mirrorMode | RTCVideoRenderMode | 视图显示模式 |
# startPreview
- (void)startPreview
说明
开启本地视频预览
# stopPreview
- (void)stopPreview
说明
停止本地视频预览
# setPreviewResolution:
- (void)setPreviewResolution:(CGSize)previewResolution
说明
设置预览分辨率
参数
变量名 | 类型 | 描述 |
---|---|---|
previewResolution | CGSize | 预览分辨率 |
# setVideoBitrate:
- (void)setVideoBitrate:(RTC_ENGINE_VIDEO_BITRATE)videoBitrate
说明
设置视频编码码率
参数
变量名 | 类型 | 描述 |
---|---|---|
videoBitrate | RTC_ENGINE_VIDEO_BITRATE | 视频码率 |
# setVideoResolution:
- (void)setVideoResolution:(RTC_ENGINE_VIDEO_RESOLUTION)videoResolution
说明
设置视频编码分辨率
参数
变量名 | 类型 | 描述 |
---|---|---|
videoResolution | RTC_ENGINE_VIDEO_RESOLUTION | 视频分辨率 |
# setVideoEncoderConfiguration:height:fps:bitrate:orientation:
- (void)setVideoEncoderConfiguration:(int)width height:(int)height fps:(int)fps bitrate:(int)bitrate orientation:(RTCOrientationMode)orientation
说明
设置视频编码配置
参数
变量名 | 类型 | 描述 |
---|---|---|
width | int | 宽度 |
height | int | 高度 |
fps | int | 帧率 |
bitrate | int | 码率(kbps) |
orientation | RTCOrientationMode | 输出方向 |
# switchCamera
- (void)switchCamera
说明
切换前置/后置摄像头
# getCameraPosition
- (OmniRtcLiveCameraPosition)getCameraPosition
说明
获取采集摄像头位置
返回
cameraPosition 前后置摄像头
# setCameraPosition:
- (BOOL)setCameraPosition:(OmniRtcLiveCameraPosition)cameraPosition
说明
设置采集摄像头位置
参数
变量名 | 类型 | 描述 |
---|---|---|
cameraPosition | OmniRtcLiveCameraPosition | 前后置摄像头 |
返回
YES表示成功,NO表示失败
# setMirror:
- (void)setMirror:(BOOL)isMirror
说明
设置本地镜像
参数
变量名 | 类型 | 描述 |
---|---|---|
isMirror | BOOL | 前后置摄像头 |
# setRemoteMirror:mirror:
- (void)setRemoteMirror:(NSUInteger)uid mirror:(BOOL)isMirror
说明
设置远端镜像
参数
变量名 | 类型 | 描述 |
---|---|---|
uid | NSUInteger | 远端用户ID |
isMirror | BOOL | 前后置摄像头 |
# setMirrorMode:
- (void)setMirrorMode:(OmniRtcLiveMirrorMode)mode
说明
设置预览的镜像模式
参数
变量名 | 类型 | 描述 |
---|---|---|
mode | OmniRtcLiveMirrorMode | 预览的镜像模式 |
# setEnableSpeakerphone:
- (int)setEnableSpeakerphone:(BOOL)enableSpeaker
说明
启用/关闭扬声器播放
参数
变量名 | 类型 | 描述 |
---|---|---|
enableSpeaker | BOOL | YES:切换到外放;NO:切换到听筒 |
返回
0表示成功
# isSpeakerphoneEnabled:
- (BOOL)isSpeakerphoneEnabled
说明
查询扬声器启用状态
返回
YES表示扬声器已开启,NO表示未开启
# enableLastmileProbeTest:
- (void)enableLastmileProbeTest
说明
启动网络连接质量测试,直播场景下,主播在加入频道后请勿调用该方法
# disableLastmileProbeTest:
- (void)disableLastmileProbeTest
说明
关闭网络测试
# enableExternalVideo:useTexture:
- (void)enableExternalVideo:(BOOL)enable useTexture:(BOOL)useTexture
说明
开启外部视频推流,需要在进房间之前调用
参数
变量名 | 类型 | 描述 |
---|---|---|
enable | BOOL | YES:开启;NO:关闭 |
useTexture | BOOL | YES:使用纹理数据;NO:不使用纹理数据 |
# pushExternalVideoFrame:
- (void)pushExternalVideoFrame:(CMSampleBufferRef)sampleBuffer
说明
推送外部视频帧
参数
变量名 | 类型 | 描述 |
---|---|---|
sampleBuffer | CMSampleBufferRef | 纹理数据 |
# pushExternalVideoFrameWithData:size:format:
- (void)pushExternalVideoFrameWithData:(NSData*)data size:(CGSize)size format:(int)format
说明
推送外部视频数据
参数
变量名 | 类型 | 描述 |
---|---|---|
data | NSData* | 视频数据 |
size | CGSize | 数据尺寸 |
format | int | 数据格式,1:I420;2:BGRA;3:NV21;4:RGBA;7:ARGB;8:NV12(NV12只支持texture) |
# enableExternalAudio:SampleRate:channelsPerFrame:
- (void)enableExternalAudio:(BOOL)enable SampleRate:(NSUInteger)sampleRate channelsPerFrame:(NSUInteger)channelsPerFrame
说明
开启外部音频推流
参数
变量名 | 类型 | 描述 |
---|---|---|
enable | BOOL | YES:开启;NO:关闭 |
sampleRate | NSUInteger | 采样率 |
channelsPerFrame | NSUInteger | 声道数 |
# pushExternalAudioFrameRawData:samples:timestamp:
- (void)pushExternalAudioFrameRawData:(void *_Nonnull)data samples:(NSUInteger)samples timestamp:(NSTimeInterval)timestamp
说明
推送外部音频裸数据
参数
变量名 | 类型 | 描述 |
---|---|---|
data | void* | 音频数据 |
samples | NSUInteger | 采样数 |
timestamp | NSTimeInterval | 时间戳 |
# pushExternalAudioFrameSampleBuffer:
- (void)pushExternalAudioFrameSampleBuffer:(CMSampleBufferRef _Nonnull)sampleBuffer
说明
推送外部音频裸数据
参数
变量名 | 类型 | 描述 |
---|---|---|
sampleBuffer | CMSampleBufferRef | 音频数据 |
# setAudioBitrate:
- (int)setAudioBitrate:(int)bitrate
说明
设置音频编码码率
参数
变量名 | 类型 | 描述 |
---|---|---|
bitrate | int | 码率 |
返回
0表示成功
# setRecordingAudioParameters:channel:
- (int)setRecordingAudioParameters:(NSUInteger)sample channel:(NSUInteger)nchannel
说明
设置音频采集参数
参数
变量名 | 类型 | 描述 |
---|---|---|
sample | NSUInteger | 采样率 |
nchannel | NSUInteger | 通道数 |
返回
0表示成功
# setRecordingAudioParameters:channel:mode:samplesPerCall:
- (int)setRecordingAudioParameters:(NSUInteger)sampleRate channel:(NSUInteger)channel mode:(OmniRtcLiveAudioRawFrameOperationMode)mode samplesPerCall:(NSInteger)samplesPerCall
说明
设置音频采集参数
参数
变量名 | 类型 | 描述 |
---|---|---|
sampleRate | NSUInteger | 采样率 |
channel | NSUInteger | 通道数 |
mode | OmniRtcLiveAudioRawFrameOperationMode | 读写模式 |
samplesPerCall | NSInteger | 每次回调的采样数 |
返回
0表示成功
# setPlaybackAudioParameters:channel:mode:samplesPerCall:
- (int)setPlaybackAudioParameters:(NSUInteger)sample channel:(NSUInteger)nchannel mode:(OmniRtcLiveAudioRawFrameOperationMode)mode samplesPerCall:(NSInteger)samples
说明
设置音频播放参数
参数
变量名 | 类型 | 描述 |
---|---|---|
sample | NSUInteger | 采样率 |
nchannel | NSUInteger | 通道数 |
mode | OmniRtcLiveAudioRawFrameOperationMode | 读写模式 |
samplesPerCall | NSInteger | 每次回调的采样数 |
返回
0表示成功
# adjustPlaybackSignalVolume:
- (int)adjustPlaybackSignalVolume:(NSInteger)volume
说明
调节播放音量,volume 范围是[0,400],注意不能跟 setVolume 混用
参数
变量名 | 类型 | 描述 |
---|---|---|
volume | NSUInteger | 音量值,范围是[0,400] |
返回
0表示成功
# setVolume:volume:
- (int)setVolume:(NSString* _Nonnull)userId volume:(NSUInteger)volume
说明
设置指定用户播放音量,注意不能跟 setVolume 混用
参数
变量名 | 类型 | 描述 |
---|---|---|
userId | NSString* | 用户ID |
volume | NSUInteger | 音量值,范围是[0,400] |
返回
0表示成功
# setVolume:volume:channelID:
- (int)setVolume:(NSString* _Nonnull)userId volume:(NSUInteger)volume channelID:(NSString* _Nonnull)channelID
说明
设置 Channel 音量,已废弃,请使用RTCChannel代替
参数
变量名 | 类型 | 描述 |
---|---|---|
userId | NSString* | 用户ID |
volume | NSUInteger | 音量值,范围是[0,400] |
channelID | NSString* | 频道名称 |
返回
0表示成功
# setAllRemoteVolume:
- (int)setAllRemoteVolume:(NSUInteger)volume
说明
设置远端所有用户的播放音量
参数
变量名 | 类型 | 描述 |
---|---|---|
volume | NSUInteger | 音量值,范围是[0,400] |
返回
0表示成功
# setLogFileWithPath:logLevel:
- (int)setLogFileWithPath:(NSString* _Nonnull)logFilePath logLevel:(RTCEngineLogLevelType)logLevel
说明
设置日志的文件路径和等级
参数
变量名 | 类型 | 描述 |
---|---|---|
logFilePath | NSString* | 日志文件路径 |
logLevel | RTCEngineLogLevelType | 日志等级 |
返回
0表示成功
# setLimitLogFileSize:
- (int)setLimitLogFileSize:(NSUInteger)fileSizeInKBytes
说明
设置日志大小
参数
变量名 | 类型 | 描述 |
---|---|---|
fileSizeInKBytes | NSUInteger | 日志大小,单位KB |
返回
0表示成功
# setTimeStamp:
- (int)setTimeStamp:(long long)timeStamp
说明
设置时间戳,返回 -2 表示创建发送SEI的数据通道失败
参数
变量名 | 类型 | 描述 |
---|---|---|
timeStamp | long | YES表示开启;NO表示不开启 |
返回
0表示成功
# getTimeStampWithUid:
- (long long)getTimeStampWithUid:(NSInteger)uid
说明
获取时间戳
参数
变量名 | 类型 | 描述 |
---|---|---|
uid | NSInteger | 远端用户ID |
返回
时间戳
# sendStreamMessage:timeStamp:
- (int)sendStreamMessage:(NSData*)data timeStamp:(long long)timeStamp
说明
发送自定义消息
参数
变量名 | 类型 | 描述 |
---|---|---|
data | NSData* | 自定义消息数据 |
timeStamp | long | 时间戳 |
返回
0表示成功
# addPublishStreamUrl:transCoding:
- (int)addPublishStreamUrl:(NSString* _Nullable)streamUrl transCoding:(BOOL)transCode
说明
添加 rtmp 推流地址
参数
变量名 | 类型 | 描述 |
---|---|---|
streamUrl | NSString* | 推流地址 |
transCode | BOOL | 是否启用转码,YES表示转码,NO表示不转吗 |
返回
0表示成功
# removePublishStreamUrl:
- (int)removePublishStreamUrl:(NSString* _Nullable)streamUrl
说明
删除 rtmp 推流地址,不要 removePublishStreamUrl 以后马上调用 addPublishStreamUrl,一定要等停止推流成功后再重新推流
参数
变量名 | 类型 | 描述 |
---|---|---|
streamUrl | NSString* | 推流地址 |
返回
0表示成功
# setRtmpConfig:
- (int)setRtmpConfig:(RTCRtmpConfig* _Nullable)rtmpConfig
说明
设置rtmp流的配置信息
参数
变量名 | 类型 | 描述 |
---|---|---|
rtmpConfig | RTCRtmpConfig* | 推流配置 |
返回
0表示成功
# startPlayMusic:loopback:replace:cycle:
- (int)startPlayMusic:(NSString* _Nullable)filePath loopback:(BOOL)loopback replace:(BOOL)replace cycle:(NSInteger)cycle
说明
音乐文件播放及混音设置,支持以下音频格式: mp3,aac,m4a,3gp,wav。通过 rtcEngine:playMusicStateChanged:errorCode: 返回播放状态,不要在主线程调用,不能多线程调用,播放网络音频会存在卡住线程问题,建议不要播放网络音频,网络音频是系统API实现,控制权限少
参数
变量名 | 类型 | 描述 |
---|---|---|
filePath | NSString* | 播放文件的路径 |
loopback | BOOL | YES:只有本地可以听到混音或替换后的音频流;NO:本地和对方都可以听到混音或替换后的音频流 |
replace | BOOL | YES:只推送设置的本地音频文件或者线上音频文件,不传输麦克风收录的音频;NO:音频文件内容将会和麦克风采集的音频流进行混音 |
cycle | NSInteger | 正整数:循环的次数;-1:无限循环 |
返回
0表示成功
# stopPlayMusic
- (int)stopPlayMusic
说明
停止播放音乐文件,不要在主线程调用,不能多线程调用,播放网络音频会存在卡住线程问题,建议不要播放网络音频,网络音频是系统API实现,控制权限少
返回
0表示成功
# pauseAudioMusic
- (int)pauseAudioMusic
说明
暂停播放,不要在主线程调用,不能多线程调用,播放网络音频会存在卡住线程问题,建议不要播放网络音频,网络音频是系统API实现,控制权限少
返回
0表示成功
# resumeAudioMusic
- (int)resumeAudioMusic
说明
恢复播放,不要在主线程调用,不能多线程调用,播放网络音频会存在卡住线程问题,建议不要播放网络音频,网络音频是系统API实现,控制权限少
返回
0表示成功
# getAudioMusicDuration
- (int)getAudioMusicDuration
说明
获取总时长,单位ms,不要在主线程调用,不能多线程调用,播放网络音频会存在卡住线程问题,建议不要播放网络音频,网络音频是系统API实现,控制权限少
返回
0表示成功
# getAudioMusicCurrentPosition
- (int)getAudioMusicCurrentPosition
说明
获取播放位置,单位ms,不要在主线程调用,不能多线程调用,播放网络音频会存在卡住线程问题,建议不要播放网络音频,网络音频是系统API实现,控制权限少
返回
0表示成功
# setAudioMusicPosition:
- (int)setAudioMusicPosition:(NSInteger)pos
说明
设置播放位置,单位ms,不要在主线程调用,不能多线程调用,播放网络音频会存在卡住线程问题,建议不要播放网络音频,网络音频是系统API实现,控制权限少
参数
变量名 | 类型 | 描述 |
---|---|---|
pos | NSInteger | 播放位置 |
返回
0表示成功
# adjustPlayMusicVolume:
- (int)adjustPlayMusicVolume:(NSInteger)volume
说明
调整播放音乐的音量,音乐文件播放音量范围为 0~100,默认 100 为原始文件音量,不要在主线程调用,不能多线程调用,播放网络音频会存在卡住线程问题,建议不要播放网络音频,网络音频是系统API实现,控制权限少
参数
变量名 | 类型 | 描述 |
---|---|---|
volume | NSInteger | 播放音量[0,100] |
返回
0表示成功
# obtainSDKVersion:
- (NSString* _Nonnull)obtainSDKVersion
说明
获取SDK版本号
返回
SDK版本号
# enableContentInspect:interval:
- (int)enableContentInspect:(BOOL)enable interval:(NSInteger)interval
说明
鉴黄接口,最小时间间隔为5秒
参数
变量名 | 类型 | 描述 |
---|---|---|
enable | BOOL | 是否开启截图上传,YES表示开启,NO表示不开启 |
interval | NSInteger | 截图间隔 |
返回
0表示成功
# contentInspectExtra:inspectMode:
- (int)contentInspectExtra:(NSString*)arguments inspectMode:(NSArray<RTCInspectModeConfig*>*)modes
说明
鉴黄参数,开启的功能必须同时设置,比如截图鉴黄功能和AI监课功能要一起设置,不能单次设置
参数
变量名 | 类型 | 描述 |
---|---|---|
arguments | NSString* | 自定义参数 |
modes | NSArray<RTCInspectModeConfig*>*) | 截图上传配置 |
返回
0表示成功
# setRemoteVideoStream:type:
- (int)setRemoteVideoStream:(NSUInteger)uid type:(RTCVideoStreamType)streamType
说明
切换大小流,设置大小流可能会导致接收到的码率、帧率、分辨率都会变化
参数
变量名 | 类型 | 描述 |
---|---|---|
uid | NSUInteger | 远端用户ID |
streamType | RTCVideoStreamTyp | 流类型 |
返回
0表示成功
# switchAudioMode:
- (int)switchAudioMode:(RTCAudioMode)mode
说明
切换媒体音量和通话音量(根据是否在投屏决定是否启用)
参数
变量名 | 类型 | 描述 |
---|---|---|
mode | RTCAudioMode | 通话模式 |
返回
0表示成功
# updateOutputPixelFormat:
- (int)updateOutputPixelFormat:(RTCOutputPixelFormat)pixelFormat
说明
设置回调的裸数据格式,需要在进房间之前设置,返回-1表示设置失败,使用默认值 RTCOutputPixelFormatI420
参数
变量名 | 类型 | 描述 |
---|---|---|
pixelFormat | RTCOutputPixelFormat | 输出裸数据格式 |
返回
0表示成功
# adjustRecordingSignalVolume:
- (int)adjustRecordingSignalVolume:(NSInteger)volume
说明
调节麦克风采集信号音量,需要在进房间之前设置,返回-1表示设置失败,使用默认值 RTCOutputPixelFormatI420
参数
变量名 | 类型 | 描述 |
---|---|---|
volume | NSInteger | 麦克风采集信号音量。取值范围为 |
返回
0表示成功
# enable3Amodule:
- (int)enable3Amodule:(BOOL)enable
说明
是否开启3A模块
参数
变量名 | 类型 | 描述 |
---|---|---|
enable | BOOL | 是否开启3A,YES表示开启,NO表示不开启 |
返回
0表示成功
# startChannelMediaRelay:
- (int)startChannelMediaRelay:(RTCChannelMediaRelayConfiguration *_Nonnull)config
说明
跨频道转发,跨频道媒体流转发最多支持 4 个目标频道,请在成功加入频道后调用该方法,成功调用该方法后,若你想再次调用该方法,必须先调用 stopChannelMediaRelay 方法退出当前的转发状态,成功调用该方法后,SDK 会触发 channelMediaRelayStateDidChange 和 didReceiveChannelMediaRelayEvent 回调,并在回调中报告当前的跨频道媒体流转发状态和事件。如果 channelMediaRelayStateDidChange 回调报告 RTCChannelMediaRelayStateRunning(2) 和 RTCChannelMediaRelayStateIdle(0),且 didReceiveChannelMediaRelayEvent 回调报告 RTCChannelMediaRelayEventSentToDestinationChannel(4),则表示 SDK 开始在源频道和目标频道之间转发媒体流。如果 channelMediaRelayStateDidChange 回调报告 RTCChannelMediaRelayStateFailure(3),则表示跨频道媒体流转发出现异常。
参数
变量名 | 类型 | 描述 |
---|---|---|
config | RTCChannelMediaRelayConfiguration* | 转推配置 |
返回
0表示成功
# updateChannelMediaRelay:
- (int)updateChannelMediaRelay:(RTCChannelMediaRelayConfiguration * _Nonnull)config
说明
更新媒体流转发的频道,跨频道媒体流转发最多支持 4 个目标频道,请在 startChannelMediaRelay 方法后调用该方法,更新媒体流转发的频道,成功调用该方法后,SDK 会触发 didReceiveChannelMediaRelayEvent 回调,并在回调中报告状态码 RTCChannelMediaRelayEventUpdateDestinationChannel(7)
参数
变量名 | 类型 | 描述 |
---|---|---|
config | RTCChannelMediaRelayConfiguration* | 转推配置 |
返回
0表示成功
# stopChannelMediaRelay
- (int)stopChannelMediaRelay
说明
停止跨频道媒体流转发,成功调用该方法后,SDK 会触发 channelMediaRelayStateDidChange 回调。如果报告 RTCChannelMediaRelayStateIdle(0) 和 RTCChannelMediaRelayErrorNone(0),则表示已停止转发媒体流。如果该方法调用不成功,SDK 会触发 channelMediaRelayStateDidChange 回调,并报告状态码 RTCChannelMediaRelayErrorServerNoResponse(2) 或 RTCChannelMediaRelayEventUpdateDestinationChannelRefused(8)。你可以调用 leaveChannel 方法离开频道,跨频道媒体流转发会自动停止。
返回
0表示成功
# setRemoteUserPriority:type:
- (int)setRemoteUserPriority:(NSUInteger)uid type:(RTCUserPriority)priority
说明
设置远端用户流的优先级
参数
变量名 | 类型 | 描述 |
---|---|---|
uid | NSUInteger | 远端用户的ID |
type | RTCUserPriority | 远端用户的优先级 |
返回
0表示成功
# setExternalAudioSourceVolume:volume:
- (void)setExternalAudioSourceVolume:(OmniRtcLiveAudioExternalSourceId)sourceId volume:(NSUInteger)volume
说明
设置外部音频的音量
参数
变量名 | 类型 | 描述 |
---|---|---|
sourceId | OmniRtcLiveAudioExternalSourceId | 音频合入方式 |
volume | NSUInteger | 音量值 |
返回
0表示成功
# pushExternalAudioFrameRawData:sourceId:
- (BOOL)pushExternalAudioFrameRawData:(OmniRtcLiveAudioFrame* _Nonnull)frame sourceId:(OmniRtcLiveAudioExternalSourceId)sourceId
说明
推送外部音频合入
参数
变量名 | 类型 | 描述 |
---|---|---|
frame | OmniRtcLiveAudioFrame* | 音频数据 |
sourceId | OmniRtcLiveAudioExternalSourceId | 音频合入方式 |
返回
YES表示成功
# pushExternalAudioFrameSampleBuffer:sourceId:
- (BOOL)pushExternalAudioFrameSampleBuffer:(CMSampleBufferRef)sampleBuffer sourceId:(OmniRtcLiveAudioExternalSourceId)sourceId
说明
推送外部音频合入
参数
变量名 | 类型 | 描述 |
---|---|---|
sampleBuffer | CMSampleBufferRef | 音频数据 |
sourceId | OmniRtcLiveAudioExternalSourceId | 音频合入方式 |
返回
YES表示成功
# setBusinessUserRole:sourceId:
- (int)setBusinessUserRole:(OmniRtcLiveBusinessUserRole)role
说明
设置业务类型
参数
变量名 | 类型 | 描述 |
---|---|---|
role | OmniRtcLiveBusinessUserRole | 业务类型 |
返回
YES表示成功
# setRemoteSubscribeFallbackOption:
- (int)setRemoteSubscribeFallbackOption:(OmniRtcLiveStreamFallbackOptions)option
说明
设置自动切换大小流选项
参数
变量名 | 类型 | 描述 |
---|---|---|
option | OmniRtcLiveStreamFallbackOptions | 切换方式,https://wiki.zhiyinlou.com/pages/viewpage.action?pageId=155224972 |
返回
0表示成功
# applyRemoteStreamSubscribeAdvice:type:
- (int)applyRemoteStreamSubscribeAdvice:(NSUInteger)userID type:(OmniRtcLiveSubscriptionStreamType)type
说明
手动切换大小流
参数
变量名 | 类型 | 描述 |
---|---|---|
userID | NSUInteger | 目标用户ID |
type | OmniRtcLiveSubscriptionStreamType | 目标流类型 |
返回
0表示成功
# takeLocalViewSnapshot
- (BOOL)takeLocalViewSnapshot
说明
截取本地预览视频图像
返回
YES表示成功
# takeRemoteViewSnapshot:
- (BOOL)takeRemoteViewSnapshot:(NSUInteger)uid
说明
截取远端用户视频图像
参数
变量名 | 类型 | 描述 |
---|---|---|
uid | NSUInteger | 用户ID |
返回
YES表示成功
# setAudioEncoderConfiguration:processMode:
- (int)setAudioEncoderConfiguration:(NSInteger)bitrate processMode:(RTCAudioProcessMode)mode
说明
设置音频码率和处理模式
参数
变量名 | 类型 | 描述 |
---|---|---|
bitrate | NSInteger | 码率,单位kbps |
mode | RTCAudioProcessMode | 音频处理模式 |
返回
0表示成功
# getErrorDescription:
- (NSString*_Nullable)getErrorDescription:(NSInteger)code
说明
根据错误码获取对应的错误描述
参数
变量名 | 类型 | 描述 |
---|---|---|
code | NSInteger | 错误码 |
返回
0表示成功
# getConnectionState
- (OmniRtcLiveConnectionStateType)getConnectionState
说明
获取链接状态
返回
链接状态
# setAudioProfile:scenario:
- (int)setAudioProfile:(OmniRtcLiveAudioProfile)profile scenario:(OmniRtcLiveAudioScenario)scenario
说明
设置音频配置
参数
变量名 | 类型 | 描述 |
---|---|---|
profile | OmniRtcLiveAudioProfile | 音频配置 |
scenario | OmniRtcLiveAudioScenario | 音频场景 |
返回
0表示成功