ByteRTCRoom
@interface ByteRTCRoom : NSObject
objectivec
成员变量
类型名称
iddelegate
成员函数
返回名称
voiddestroy
NSString*getRoomId
voidsetRTCRoomDelegate:
intjoinRoom:userInfo:roomConfig:
voidsetUserVisibility:
voidsetMultiDeviceAVSync:
voidleaveRoom
intupdateToken:
intsetRemoteVideoConfig:remoteVideoConfig:
voidpublishStream:
voidunpublishStream:
voidpublishScreen:
voidunpublishScreen:
intsubscribeStream:mediaStreamType:
intsubscribeAllStreamsWithMediaStreamType:
intunsubscribeStream:mediaStreamType:
intunsubscribeAllStreamsWithMediaStreamType:
intsubscribeScreen:mediaStreamType:
intunsubscribeScreen:mediaStreamType:
voidpauseAllSubscribedStream:
voidresumeAllSubscribedStream:
NSIntegersendUserMessage:message:config:
NSIntegersendUserBinaryMessage:message:config:
NSIntegersendRoomMessage:
NSIntegersendRoomBinaryMessage:
intstartForwardStreamToRooms:
intupdateForwardStreamToRooms:
voidstopForwardStreamToRooms
voidpauseForwardStreamToAllRooms
voidresumeForwardStreamToAllRooms
ByteRTCRangeAudio*getRangeAudio
ByteRTCSpatialAudio*getSpatialAudio
voidsetRemoteRoomAudioPlaybackVolume:
intsetAudioSelectionConfig:
NSIntegersetRoomExtraInfo:value:
intstartSubtitle:
intstopSubtitle
int[deprecated] subscribeUserStream:streamType:mediaType:videoConfig:
变量说明

delegate
@property(nonatomic, weak) id<ByteRTCRoomDelegate> _Nullable delegate;
objectivec
函数说明

destroy
- (void)destroy;
objectivec

退出并销毁调用 createRTCRoom: 所创建的房间实例。

getRoomId
- (NSString *_Nullable)getRoomId;
objectivec

获取房间 ID

setRTCRoomDelegate:
- (void)setRTCRoomDelegate:(id<ByteRTCRoomDelegate> _Nullable)roomDelegate;
objectivec

通过设置 ByteRTCRoom 对象的事件句柄,监听此对象对应的回调事件。

传入参数

参数名类型说明
roomDelegateid参见 ByteRTCRoomDelegate。

joinRoom:userInfo:roomConfig:
- (int)joinRoom:(NSString *_Nullable)token userInfo:(ByteRTCUserInfo *_Nonnull)userInfo roomConfig:(ByteRTCRoomConfig *_Nonnull)roomConfig;
objectivec

加入房间。

调用 createRTCRoom: 创建房间后,调用此方法加入房间,同房间内其他用户进行音视频通话。

传入参数

参数名类型说明
tokenNSString*动态密钥,用于对进房用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。Token 有效期及生成方式参看使用 Token 完成鉴权。
使用不同 AppID 的 App 是不能互通的。
请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。具体失败原因会通过 rtcRoom:onRoomStateChanged:withUid:state:extraInfo: 回调告知。
userInfoByteRTCUserInfo*用户信息。参看 ByteRTCUserInfo。
roomConfigByteRTCRoomConfig*房间参数配置,设置房间模式以及是否自动发布或订阅流。具体配置模式参看 ByteRTCRoomConfig。

返回值
方法调用结果。

注意

setUserVisibility:
- (void)setUserVisibility:(BOOL)enable;
objectivec

设置用户可见性。未调用该接口前,本地用户默认对他人可见。

传入参数

参数名类型说明
enableBOOL设置用户是否对房间内其他用户可见:
• YES: 可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。
• NO: 不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。

注意

setMultiDeviceAVSync:
- (void)setMultiDeviceAVSync:(NSString* _Nullable) audioUserId;
objectivec

设置发流端音画同步。

当同一用户同时使用两个通话设备分别采集发送音频和视频时,有可能会因两个设备所处的网络环境不一致而导致发布的流不同步,此时你可以在视频发送端调用该接口,SDK 会根据音频流的时间戳自动校准视频流,以保证接收端听到音频和看到视频在时间上的同步性。

传入参数

参数名类型说明
audioUserIdNSString*音频发送端的用户 ID,将该参数设为空则可解除当前音视频的同步关系。

注意

leaveRoom
- (void)leaveRoom;
objectivec

离开房间。

用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。

注意

updateToken:
- (int)updateToken:(NSString *_Nullable)token;
objectivec

更新 Token。
Token 中同时包含进房、发布和订阅权限,各权限有一定的有效期,并且到期前 30 秒会触发回调,提示用户更新 Token 相关权限。此时需要重新获取 Token,并调用此方法更新 Token,以保证通话的正常进行。

传入参数

参数名类型说明
tokenNSString*重新获取的有效 Token。
如果传入的 Token 无效,回调错误码为 ByteRTCErrorCode 中的 -1010 提示传入的 Token 无效。

返回值

注意
请勿同时调用 updateToken: 和 joinRoom:userInfo:roomConfig: 重新加入房间。

setRemoteVideoConfig:remoteVideoConfig:
- (int) setRemoteVideoConfig:(NSString * _Nonnull) userId remoteVideoConfig:(ByteRTCRemoteVideoConfig *_Nonnull) remoteVideoConfig;
objectivec

设置期望订阅的远端视频流的参数。

传入参数

参数名类型说明
userIdNSString*期望配置订阅参数的远端视频流发布用户的 ID。
remoteVideoConfigByteRTCRemoteVideoConfig*期望配置的远端视频流参数,参看 ByteRTCRemoteVideoConfig。

返回值
方法调用结果:

注意

publishStream:
- (void)publishStream:(ByteRTCMediaStreamType)type;
objectivec

在当前所在房间内发布本地通过摄像头/麦克风采集的媒体流

传入参数

参数名类型说明
typeByteRTCMediaStreamType媒体流类型,用于指定发布音频/视频,参看 ByteRTCMediaStreamType

注意

unpublishStream:
- (void)unpublishStream:(ByteRTCMediaStreamType)type;
objectivec

停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中

传入参数

参数名类型说明
typeByteRTCMediaStreamType媒体流类型,用于指定停止发布音频/视频,参看 ByteRTCMediaStreamType

注意

publishScreen:
- (void)publishScreen:(ByteRTCMediaStreamType)type;
objectivec

在当前所在房间内发布本地屏幕共享音视频流

传入参数

参数名类型说明
typeByteRTCMediaStreamType媒体流类型,用于指定发布屏幕音频/视频,参看 ByteRTCMediaStreamType。

注意

unpublishScreen:
- (void)unpublishScreen:(ByteRTCMediaStreamType)type;
objectivec

停止将本地屏幕共享音视频流发布到当前所在房间中

传入参数

参数名类型说明
typeByteRTCMediaStreamType媒体流类型,用于指定停止发布屏幕音频/视频,参看 ByteRTCMediaStreamType

注意

subscribeUserStream:streamType:mediaType:videoConfig:
- (int)subscribeUserStream:(NSString *_Nonnull)userId streamType:(ByteRTCStreamIndex)streamType mediaType:(ByteRTCSubscribeMediaType)mediaType videoConfig:(ByteRTCSubscribeVideoConfig *_Nonnull)videoConfig __deprecated_msg("Will be removed in new version");
objectivec

Deprecated since 3.36 and will be deleted in 3.51, use subscribeStream:mediaStreamType:, unsubscribeStream:mediaStreamType:, subscribeScreen:mediaStreamType: and unsubscribeScreen:mediaStreamType: instead.

订阅房间内指定的远端音视频流。

无论是自动订阅还是手动订阅模式,你都可以调用此方法按需订阅房间中的音视频流。

该方法也可用于更新已经订阅的流的属性、媒体类型等配置。

传入参数

参数名类型说明
userIdNSString*指定订阅的远端发布音视频流的用户 ID 。
streamTypeByteRTCStreamIndex流属性,用于指定订阅主流/屏幕流,参看 ByteRTCStreamIndex 。
mediaTypeByteRTCSubscribeMediaType媒体类型,用于指定订阅音/视频,参看 ByteRTCSubscribeMediaType。
videoConfigByteRTCSubscribeVideoConfig*视频订阅配置,参看 ByteRTCSubscribeVideoConfig。

注意

subscribeStream:mediaStreamType:
- (int)subscribeStream:(NSString *_Nonnull)userId mediaStreamType:(ByteRTCMediaStreamType)mediaStreamType;
objectivec

订阅房间内指定的通过摄像头/麦克风采集的媒体流,或更新对指定远端用户的订阅选项

传入参数

参数名类型说明
userIdNSString*指定订阅的远端发布音视频流的用户 ID。
mediaStreamTypeByteRTCMediaStreamType媒体流类型,用于指定订阅音频/视频。参看 ByteRTCMediaStreamType。

返回值
方法调用结果:

注意

subscribeAllStreamsWithMediaStreamType:
- (int)subscribeAllStreamsWithMediaStreamType:(ByteRTCMediaStreamType)mediaStreamType;
objectivec

订阅房间内所有通过摄像头/麦克风采集的媒体流,或更新订阅选项。

传入参数

参数名类型说明
mediaStreamTypeByteRTCMediaStreamType媒体流类型,用于指定订阅音频/视频。参看 ByteRTCMediaStreamType。

返回值

0: 方法调用成功
!0: 方法调用失败

注意

unsubscribeStream:mediaStreamType:
- (int)unsubscribeStream:(NSString *_Nonnull)userId mediaStreamType:(ByteRTCMediaStreamType)mediaStreamType;
objectivec

取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。

该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名类型说明
userIdNSString*指定取消订阅的远端发布音视频流的用户 ID。
mediaStreamTypeByteRTCMediaStreamType媒体流类型,用于指定取消订阅音频/视频。参看 ByteRTCMediaStreamType。

返回值
方法调用结果:

注意

unsubscribeAllStreamsWithMediaStreamType:
- (int)unsubscribeAllStreamsWithMediaStreamType:(ByteRTCMediaStreamType)mediaStreamType;
objectivec

取消订阅房间内所有的通过摄像头/麦克风采集的媒体流。

自动订阅和手动订阅的流都可以通过本方法取消订阅。

传入参数

参数名类型说明
mediaStreamTypeByteRTCMediaStreamType媒体流类型,用于指定取消订阅音频/视频。参看 ByteRTCMediaStreamType。

返回值
方法调用结果:

注意

subscribeScreen:mediaStreamType:
- (int)subscribeScreen:(NSString *_Nonnull)userId mediaStreamType:(ByteRTCMediaStreamType)mediaStreamType;
objectivec

订阅房间内指定的远端屏幕共享音视频流,或更新对指定远端用户的订阅选项

传入参数

参数名类型说明
userIdNSString*指定订阅的远端发布屏幕流的用户 ID。
mediaStreamTypeByteRTCMediaStreamType媒体流类型,用于指定订阅音频/视频。参看 ByteRTCMediaStreamType。

返回值
方法调用结果:

注意

unsubscribeScreen:mediaStreamType:
- (int)unsubscribeScreen:(NSString *_Nonnull)userId mediaStreamType:(ByteRTCMediaStreamType)mediaStreamType;
objectivec

取消订阅房间内指定的远端屏幕共享音视频流。

该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名类型说明
userIdNSString*指定取消订阅的远端发布屏幕流的用户 ID。
mediaStreamTypeByteRTCMediaStreamType媒体流类型,用于指定取消订阅音频/视频。参看 ByteRTCMediaStreamType。

返回值
方法调用结果:

注意

pauseAllSubscribedStream:
- (void)pauseAllSubscribedStream:(ByteRTCPauseResumControlMediaType) mediaType;
objectivec

暂停接收来自远端的媒体流

传入参数

参数名类型说明
mediaTypeByteRTCPauseResumControlMediaType媒体流类型,指定需要暂停接收音频还是视频流,参看 ByteRTCPauseResumControlMediaType

注意

resumeAllSubscribedStream:
- (void)resumeAllSubscribedStream:(ByteRTCPauseResumControlMediaType) mediaType;
objectivec

恢复接收来自远端的媒体流

传入参数

参数名类型说明
mediaTypeByteRTCPauseResumControlMediaType媒体流类型,指定需要暂停接收音频还是视频流,参看 ByteRTCPauseResumControlMediaType

注意

sendUserMessage:message:config:
- (NSInteger)sendUserMessage:(NSString *_Nonnull)userId message:(NSString *_Nonnull)message config:(ByteRTCMessageConfig)config;
objectivec

给房间内指定的用户发送点对点文本消息(P2P)。

传入参数

参数名类型说明
userIdNSString*消息接收用户的 ID
messageNSString*发送的文本消息内容。
消息不超过 64 KB。
configByteRTCMessageConfig消息发送的可靠/有序类型,参看 ByteRTCMessageConfig

返回值
这次发送消息的编号,从 1 开始递增。

注意

sendUserBinaryMessage:message:config:
- (NSInteger)sendUserBinaryMessage:(NSString * _Nonnull)uid message:(NSData * _Nonnull)message config:(ByteRTCMessageConfig)config;
objectivec

给房间内指定的用户发送点对点二进制消息(P2P)。

传入参数

参数名类型说明
uidNSString*消息接收用户的 ID
messageNSData*发送的二进制消息内容
消息不超过 46KB。
configByteRTCMessageConfig消息发送的可靠/有序类型,参看 ByteRTCMessageConfig。

返回值
这次发送消息的编号,从 1 开始递增。

注意

sendRoomMessage:
- (NSInteger)sendRoomMessage:(NSString *_Nonnull)message;
objectivec

给房间内的所有其他用户群发文本消息。

传入参数

参数名类型说明
messageNSString*发送的文本消息内容。
消息不超过 64 KB。

返回值
这次发送消息的编号,从 1 开始递增。

注意

sendRoomBinaryMessage:
- (NSInteger)sendRoomBinaryMessage:(NSData * _Nonnull)message;
objectivec

给房间内的所有其他用户群发二进制消息。

传入参数

参数名类型说明
messageNSData*用户发送的二进制广播消息
消息不超过 46KB。

返回值
这次发送消息的编号,从 1 开始递增。

注意

startForwardStreamToRooms:
- (int)startForwardStreamToRooms:(NSArray <ForwardStreamConfiguration *> * _Nullable)configurations;
objectivec

开始跨房间转发媒体流。
在调用 joinRoom:userInfo:roomConfig: 后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。

传入参数

参数名类型说明
configurationsNSArray <ForwardStreamConfiguration>**跨房间媒体流转发指定房间的信息。参看 ForwardStreamConfiguration。

返回值

0: 方法调用成功
<0: 方法调用失败

注意

updateForwardStreamToRooms:
- (int)updateForwardStreamToRooms:(NSArray <ForwardStreamConfiguration *> * _Nullable)configurations;
objectivec

更新跨房间媒体流转发信息。

通过 startForwardStreamToRooms: 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。
调用本方法增加或删减房间后,将在本端触发 rtcRoom:onForwardStreamStateChanged: 回调,包含发生了变动的目标房间中媒体流转发状态。

传入参数

参数名类型说明
configurationsNSArray <ForwardStreamConfiguration>**跨房间媒体流转发目标房间信息。参看 ForwardStreamConfiguration。

返回值

注意

stopForwardStreamToRooms
- (void)stopForwardStreamToRooms;
objectivec

停止跨房间媒体流转发。
通过 startForwardStreamToRooms: 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。

注意

pauseForwardStreamToAllRooms
- (void)pauseForwardStreamToAllRooms;
objectivec

暂停跨房间媒体流转发。
通过 startForwardStreamToRooms: 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。
调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms 快速恢复转发。

注意
调用本方法后,目标房间中的用户将接收到本地用户停止发布 rtcRoom:onUserUnpublishStream:type:reason: 和退房 rtcRoom:onUserLeave:reason: 的回调。

resumeForwardStreamToAllRooms
- (void)resumeForwardStreamToAllRooms;
objectivec

恢复跨房间媒体流转发。
调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。

注意
目标房间中的用户将接收到本地用户进房 rtcRoom:onUserJoined:elapsed: 和发布 rtcRoom:onUserJoined:elapsed: 的回调。

getRangeAudio
- (ByteRTCRangeAudio *_Nullable)getRangeAudio;
objectivec

获取范围语音接口实例。

返回值
方法调用结果:

注意
首次调用该方法须在创建房间后、加入房间前。范围语音相关 API 和调用时序详见范围语音。

getSpatialAudio
- (ByteRTCSpatialAudio *_Nullable)getSpatialAudio;
objectivec

获取空间音频接口实例。

返回值
方法调用结果:

注意

setRemoteRoomAudioPlaybackVolume:
- (void)setRemoteRoomAudioPlaybackVolume:(NSInteger)volume;
objectivec

调节某个房间内所有远端用户的音频播放音量。

传入参数

参数名类型说明
volumeNSInteger音频播放音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。为保证更好的通话质量,建议将 volume 值设为 [0,100]。
• 0: 静音
• 100: 原始音量,默认值
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

注意
假设某远端用户 A 始终在被调节的目标用户范围内,+ 当该方法与 setRemoteAudioPlaybackVolume:remoteUid:playVolume: 共同使用时,本地收听用户 A 的音量为后调用的方法设置的音量;

setAudioSelectionConfig:
- (int)setAudioSelectionConfig:(ByteRTCAudioSelectionPriority)audioSelectionPriority;
objectivec

Available since 3.52.

设置本端发布流在音频选路中的优先级。

传入参数

参数名类型说明
audioSelectionPriorityByteRTCAudioSelectionPriority本端发布流在音频选路中的优先级,默认正常参与音频选路。参见 ByteRTCAudioSelectionPriority。

注意
在控制台上为本 appId 开启音频选路后,调用本接口才会生效。进房前后调用均可生效。更多信息参见音频选路。
如果本端用户同时加入不同房间,使用本接口进行的设置相互独立。

setRoomExtraInfo:value:
- (NSInteger)setRoomExtraInfo:(NSString *_Nonnull)key value:(NSString *_Nonnull)value;
objectivec

Available since 3.52.

设置/更新房间附加信息,可用于标识房间状态或属性,或灵活实现各种业务逻辑。

传入参数

参数名类型说明
keyNSString*房间附加信息键值,长度小于 10 字节。
同一房间内最多可存在 5 个 key,超出则会从第一个 key 起进行替换。
valueNSString*房间附加信息内容,长度小于 128 字节。

返回值

注意

startSubtitle:
- (int)startSubtitle:(ByteRTCSubtitleConfig *_Nonnull)subtitleConfig;
objectivec

Available since 3.52.

识别或翻译房间内所有用户的语音,形成字幕。

语音识别或翻译的结果会通过 rtcRoom:onSubtitleMessageReceived: 事件回调给你。

调用该方法后,用户会收到 rtcRoom:onSubtitleStateChanged:errorCode:errorMessage: 回调,通知字幕是否开启。

传入参数

参数名类型说明
subtitleConfigByteRTCSubtitleConfig*字幕配置信息。参看 ByteRTCSubtitleConfig。

返回值

注意
此方法需要在进房后调用。
如果想要指定源语言,你需要在调用 joinRoom 接口进房时,通过 extraInfo 参数传入 "source_language": "zh" JSON 字符串,设置源语言为中文;传入 "source_language": "en"JSON 字符串,设置源语言为英文;传入 "source_language": "ja" JSON 字符串,设置源语言为日文。如果你未指定源语言,SDK 会将系统语种设定为源语言。如果你的系统语种不是中文、英文和日文,此时 SDK 会自动将中文设为源语言。
使用字幕功能前,你需要开通机器翻译服务,并前往 RTC 控制台,在功能配置页面开启字幕功能。

stopSubtitle
- (int)stopSubtitle;
objectivec

Available since 3.52.

关闭字幕。

调用该方法后,用户会收到 rtcRoom:onSubtitleStateChanged:errorCode:errorMessage: 回调,通知字幕是否关闭。

返回值

ByteRTCVideo
@interface ByteRTCVideo : NSObject
objectivec
成员变量
类型名称
iddelegate
静态函数
返回名称
voiddestroyRTCVideo
NSString*getSDKVersion
NSString*getErrorDescription:
成员函数
返回名称
ByteRTCVideo*createRTCVideo:delegate:parameters:
intsetAudioSourceType:
intsetAudioRenderType:
voidstartAudioCapture
voidstopAudioCapture
voidsetAudioScenario:
voidsetAudioProfile:
voidsetAnsMode:
intsetVoiceChangerType:
intsetVoiceReverbType:
intsetLocalVoiceEqualization:
intsetLocalVoiceReverbParam:
intenableLocalVoiceReverb:
voidsetCaptureVolume:volume:
voidsetPlaybackVolume:
voidenableAudioPropertiesReport:
voidsetRemoteAudioPlaybackVolume:remoteUid:playVolume:
voidsetEarMonitorMode:
voidsetEarMonitorVolume:
voidsetBluetoothMode:
voidsetLocalVoicePitch:
voidenableVocalInstrumentBalance:
voidenablePlaybackDucking:
voidsetLocalVideoSink:withSink:withPixelFormat:
voidsetRemoteVideoSink:withSink:withPixelFormat:
voidenableSimulcastMode:
intsetMaxVideoEncoderConfig:
intsetVideoEncoderConfig:
intsetScreenVideoEncoderConfig:
intsetVideoCaptureConfig:
intsetLocalVideoCanvas:withCanvas:
voidupdateLocalVideoCanvas:withRenderMode:withBackgroundColor:
voidsetRemoteVideoCanvas:withCanvas:
voidupdateRemoteStreamVideoCanvas:withRenderMode:withBackgroundColor:
voidstartVideoCapture
voidstopVideoCapture
voidsetLocalVideoMirrorType:
voidsetVideoRotationMode:
voidsetVideoOrientation:
voidswitchCamera:
ByteRTCVideoEffect _Null_unspecified*getVideoEffectInterface
intenableEffectBeauty:
intsetBeautyIntensity:withIntensity:
intsetCameraZoomRatio:
floatgetCameraZoomMaxRatio
boolisCameraZoomSupported
boolisCameraTorchSupported
intsetCameraTorch:
boolisCameraFocusPositionSupported
intsetCameraFocusPosition:
boolisCameraExposurePositionSupported
intsetCameraExposurePosition:
intsetCameraExposureCompensation:
intsendSEIMessage:andMessage:andRepeatCount:andCountPerFrame:
voidsetVideoDigitalZoomConfig:size:
voidsetVideoDigitalZoomControl:
voidstartVideoDigitalZoomControl:
voidstopVideoDigitalZoomControl
intregisterLocalVideoProcessor:withConfig:
voidregisterLocalEncodedVideoFrameObserver:
voidsetAudioRoute:
ByteRTCAudioRoutegetAudioRoute
voidenableExternalSoundCard:
intsetDefaultAudioRoute:
intstartPushMixedStreamToCDN:mixedConfig:observer:
intupdatePushMixedStreamToCDN:mixedConfig:
voidstartPushSingleStreamToCDN:singleStream:observer:
intstopPushStreamToCDN:
intstartPushPublicStream:withLayout:
intstopPushPublicStream:
intupdatePublicStreamParam:withLayout:
intstartPlayPublicStream:
intstopPlayPublicStream:
intsetPublicStreamVideoCanvas:withCanvas:
intsetPublicStreamVideoSink:withSink:withPixelFormat:
intsetPublicStreamAudioPlaybackVolume:volume:
intpushExternalVideoFrame:
voidenableAudioFrameCallback:format:
voiddisableAudioFrameCallback:
voidregisterAudioFrameObserver:
voidregisterAudioProcessor:
voidenableAudioProcessor:audioFormat:
voiddisableAudioProcessor:
intpushExternalAudioFrame:
intpullExternalAudioFrame:
intsetBusinessId:
intfeedback:info:
voidsetPublishFallbackOption:
voidsetSubscribeFallbackOption:
intsetRemoteUserPriority:InRoomId:uid:
voidsetEncryptInfo:key:
voidsetCustomizeEncryptHandler:
ByteRTCRoom*createRTCRoom:
intpushScreenVideoFrame:time:rotation:
voidsetExtensionConfig:
voidstartScreenCapture:bundleId:
voidupdateScreenCapture:
voidstopScreenCapture
voidsendScreenCaptureExtensionMessage:
voidsetRuntimeParameters:
voidstartASR:handler:
voidstopASR
intstartFileRecording:withRecordingConfig:type:
voidstopFileRecording:
intstartAudioRecording:
intstopAudioRecording
ByteRTCAudioMixingManager*getAudioMixingManager
intlogin:uid:
voidlogout
voidupdateLoginToken:
voidsetServerParams:url:
voidgetPeerOnlineStatus:
NSIntegersendUserMessageOutsideRoom:message:config:
NSIntegersendUserBinaryMessageOutsideRoom:message:config:
NSIntegersendServerMessage:
NSIntegersendServerBinaryMessage:
ByteRTCNetworkDetectionStartReturnstartNetworkDetection:uplinkBandwidth:downlink:downlinkBandwidth:
voidstopNetworkDetection
voidsetScreenAudioSourceType:
voidsetScreenAudioStreamIndex:
intpushScreenAudioFrame:
voidsetVideoSourceType:WithStreamIndex:
voidsetExternalVideoEncoderEventHandler:
intpushExternalEncodedVideoFrame:withVideoIndex:withEncodedVideoFrame:
voidsetVideoDecoderConfig:withVideoDecoderConfig:
voidrequestRemoteVideoKeyFrame:
voidregisterRemoteEncodedVideoFrameObserver:
intsendStreamSyncInfo:config:
intstartEchoTest:playDelay:
intstopEchoTest
voidsetVideoWatermark:withImagePath:withRtcWatermarkConfig:
voidclearVideoWatermark:
NSIntegertakeLocalSnapshot:callback:
NSIntegertakeRemoteSnapshot:callback:
voidstartCloudProxy:
voidstopCloudProxy
ByteRTCSingScoringManager*getSingScoringManager
intsetDummyCaptureImagePath:
ByteRTCNetworkTimeInfo*getNetworkTimeInfo
voidsetAudioAlignmentProperty:withMode:
ByteRTCKTVManager*getKTVManager
intstartHardwareEchoDetection:
intstopHardwareEchoDetection
voidsetCellularEnhancement:
intsetLocalProxy:
int[deprecated] setVideoEncoderConfig:config:
int[deprecated] checkVideoEffectLicense:
void[deprecated] setVideoEffectAlgoModelPath:
int[deprecated] enableVideoEffect:
int[deprecated] setVideoEffectNodes:
int[deprecated] updateVideoEffectNode:nodeKey:nodeValue:
int[deprecated] setVideoEffectColorFilter:
int[deprecated] setVideoEffectColorFilterIntensity:
int[deprecated] setBackgroundSticker:source:
int[deprecated] registerFaceDetectionObserver:withInterval:
int[deprecated] sendSEIMessage:andMessage:andRepeatCount:
int[deprecated] setAudioPlaybackDevice:
void[deprecated] startLiveTranscoding:transcoding:observer:
void[deprecated] stopLiveTranscoding:
int[deprecated] updateLiveTranscoding:transcoding:
void[deprecated] registerLocalAudioProcessor:format:
void[deprecated] muteAudioPlayback:
变量说明

delegate
@property (nonatomic, weak) id<ByteRTCVideoDelegate> _Nullable delegate;
objectivec
函数说明

destroyRTCVideo
+ (void)destroyRTCVideo;
objectivec

销毁由 createRTCVideo:delegate:parameters: 所创建的引擎实例,并释放所有相关资源。

注意

getSDKVersion
+ (NSString * _Nonnull)getSDKVersion;
objectivec

获取 SDK 当前的版本号。

返回值
SDK 当前的版本号。

getErrorDescription:
+ (NSString * _Nonnull)getErrorDescription:(NSInteger)code;
objectivec

获取 SDK 内各种错误码、警告码的描述文字。

传入参数

参数名类型说明
codeNSInteger通过 rtcEngine:onWarning: 和 rtcEngine:onError: 回调获得的值,
具体可以参考 ByteRTCWarningCode 和 ByteRTCErrorCode 。

返回值
描述文字。

createRTCVideo:delegate:parameters:
+ (ByteRTCVideo * _Nullable) createRTCVideo:(NSString * _Nonnull)appId delegate:(id<ByteRTCVideoDelegate> _Nullable)delegate parameters:(NSDictionary * _Nonnull)parameters;
objectivec

创建引擎对象。

如果当前进程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。

如果当前进程中已创建了引擎实例,再次调用此方法时,会返回已创建的引擎实例。

传入参数

参数名类型说明
appIdNSString*每个应用的唯一标识符,由 RTC 控制台随机生成的。
不同的 AppId 生成的实例在 RTC 中进行音视频通话完全独立,无法互通。
delegateidSDK 回调给应用层的 delegate,详见 ByteRTCVideoDelegate
parametersNSDictionary*私有参数。如需使用请联系技术支持人员。

返回值
可用的 ByteRTCVideo 实例

setAudioSourceType:
- (int)setAudioSourceType:(ByteRTCAudioSourceType) type;
objectivec

切换音频采集方式

传入参数

参数名类型说明
typeByteRTCAudioSourceType音频数据源,详见 ByteRTCAudioSourceType。
默认使用内部音频采集。音频采集和渲染方式无需对应。

返回值
方法调用结果:

注意

setAudioRenderType:
- (int)setAudioRenderType:(ByteRTCAudioRenderType) type;
objectivec

切换音频渲染方式

传入参数

参数名类型说明
typeByteRTCAudioRenderType音频输出类型,详见 ByteRTCAudioRenderType
默认使用内部音频渲染。音频采集和渲染方式无需对应。

返回值
方法调用结果:

注意

startAudioCapture
- (void)startAudioCapture;
objectivec

开启内部音频采集。默认为关闭状态。

内部采集是指:使用 RTC SDK 内置的音频采集机制进行视频采集。
调用该方法开启后,本地用户会收到 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error: 的回调。

非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStartAudioCapture:uid: 的回调。

注意

stopAudioCapture
- (void)stopAudioCapture;
objectivec

关闭内部音频采集。默认为关闭状态。

内部采集是指:使用 RTC SDK 内置的音频采集机制进行视频采集。
调用该方法,本地用户会收到 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error: 的回调。

非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStopAudioCapture:uid: 的回调。

注意

setAudioScenario:
- (void)setAudioScenario:(ByteRTCAudioScenarioType)audioScenario;
objectivec

设置音频场景类型。
你可以根据你的应用所在场景,选择合适的音频场景类型。
选择音频场景后,SDK 会自动根据客户端音频采集播放设备和状态,适用通话音量/媒体音量。

传入参数

参数名类型说明
audioScenarioByteRTCAudioScenarioType音频场景类型,参看 ByteRTCAudioScenarioType。

注意

setAudioProfile:
- (void)setAudioProfile:(ByteRTCAudioProfileType)audioProfile;
objectivec

设置音质档位。

当所选的 ByteRTCRoomProfile 中的音频参数无法满足你的场景需求时,调用本接口切换的音质档位。

传入参数

参数名类型说明
audioProfileByteRTCAudioProfileType音质档位,参看 ByteRTCAudioProfileType

注意

setAnsMode:
- (void)setAnsMode:(ByteRTCAnsMode)ansMode;
objectivec

支持根据业务场景,设置通话中的音频降噪模式。

传入参数

参数名类型说明
ansModeByteRTCAnsMode降噪模式。具体参见 ByteRTCAnsMode。

注意
该接口进房前后均可调用,可重复调用,仅最后一次调用生效。

setVoiceChangerType:
- (int)setVoiceChangerType:(ByteRTCVoiceChangerType)voiceChanger;
objectivec

Available since 3.32

设置变声特效类型

传入参数

参数名类型说明
voiceChangerByteRTCVoiceChangerType变声特效类型,参看 ByteRTCVoiceChangerType。

返回值
方法调用结果:

注意

setVoiceReverbType:
- (int)setVoiceReverbType:(ByteRTCVoiceReverbType)voiceReverb;
objectivec

Available since 3.32

设置混响特效类型

传入参数

参数名类型说明
voiceReverbByteRTCVoiceReverbType混响特效类型,参看 ByteRTCVoiceReverbType。

返回值
方法调用结果:

注意

setLocalVoiceEqualization:
-(int)setLocalVoiceEqualization:(ByteRTCVoiceEqualizationConfig* _Nonnull)config;
objectivec

设置本地采集语音的均衡效果。包含内部采集和外部采集,但不包含混音音频文件。

传入参数

参数名类型说明
configByteRTCVoiceEqualizationConfig*语音均衡效果,参看 ByteRTCVoiceEqualizationConfig

返回值

注意
根据奈奎斯特采样率,音频采样率必须大于等于设置的中心频率的两倍,否则,设置不生效。

setLocalVoiceReverbParam:
-(int)setLocalVoiceReverbParam:(ByteRTCVoiceReverbConfig* _Nonnull)param;
objectivec

设置本地采集音频的混响效果。包含内部采集和外部采集,但不包含混音音频文件。

传入参数

参数名类型说明
paramByteRTCVoiceReverbConfig*混响效果,参看 ByteRTCVoiceReverbConfig

返回值

注意
调用 enableLocalVoiceReverb: 开启混响效果。

enableLocalVoiceReverb:
-(int)enableLocalVoiceReverb:(bool)enable;
objectivec

开启本地音效混响效果

传入参数

参数名类型说明
enablebool是否开启

返回值

注意
调用 setLocalVoiceReverbParam: 设置混响效果。

setCaptureVolume:volume:
- (void)setCaptureVolume:(ByteRTCStreamIndex)index volume:(int)volume;
objectivec

调节音频采集音量

传入参数

参数名类型说明
indexByteRTCStreamIndex流索引,指定调节主流还是调节屏幕流的音量,参看 ByteRTCStreamIndex
volumeint采集的音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
• 0:静音
• 100:原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

注意
在开启音频采集前后,你都可以使用此接口设定采集音量。

setPlaybackVolume:
- (void)setPlaybackVolume:(NSInteger)volume;
objectivec

调节本地播放的所有远端用户混音后的音量。

播放音频前或播放音频时,你都可以使用此接口设定播放音量。

传入参数

参数名类型说明
volumeNSInteger音频播放音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

注意
假设某远端用户 A 始终在被调节的目标用户范围内,当该方法与 setRemoteAudioPlaybackVolume:remoteUid:playVolume: 或 setRemoteRoomAudioPlaybackVolume: 共同使用时,本地收听用户 A 的音量将为两次设置的音量效果的叠加。

enableAudioPropertiesReport:
- (void)enableAudioPropertiesReport:(ByteRTCAudioPropertiesConfig* _Nonnull)config;
objectivec

启用音频信息提示。启用后,你可以收到 rtcEngine:onLocalAudioPropertiesReport:,rtcEngine:onRemoteAudioPropertiesReport:totalRemoteVolume:,和 rtcEngine:onActiveSpeaker:uid:。

传入参数

参数名类型说明
configByteRTCAudioPropertiesConfig*详见 ByteRTCAudioPropertiesConfig

setRemoteAudioPlaybackVolume:remoteUid:playVolume:
- (void)setRemoteAudioPlaybackVolume:(NSString *_Nonnull)room_id remoteUid:(NSString *_Nonnull)uid playVolume:(NSInteger)volume;
objectivec

调节来自指定远端用户的音频播放音量。

传入参数

参数名类型说明
room_idNSString*音频来源用户所在的房间 ID
uidNSString*音频来源的远端用户 ID
volumeNSInteger音频播放音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。为保证更好的通话质量,建议将 volume 值设为 [0,100]。
• 0: 静音
• 100: 原始音量,默认值
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

注意
假设某远端用户 A 始终在被调节的目标用户范围内,+ 当该方法与 setRemoteRoomAudioPlaybackVolume: 共同使用时,本地收听用户 A 的音量为后调用的方法设置的音量;

setEarMonitorMode:
- (void)setEarMonitorMode:(ByteRTCEarMonitorMode)mode;
objectivec

开启/关闭耳返功能。

传入参数

参数名类型说明
modeByteRTCEarMonitorMode是否开启耳返功能,参看 ByteRTCEarMonitorMode。

注意

setEarMonitorVolume:
- (void)setEarMonitorVolume:(NSInteger)volume;
objectivec

设置耳返的音量。

传入参数

参数名类型说明
volumeNSInteger耳返的音量,取值范围:[0,100],单位:%

注意
设置耳返音量前,你必须先调用 setEarMonitorMode: 打开耳返功能。

setBluetoothMode:
- (void)setBluetoothMode:(ByteRTCBluetoothMode) mode;
objectivec

在纯媒体音频场景下,切换 iOS 设备与耳机之间的蓝牙传输协议。

传入参数

参数名类型说明
modeByteRTCBluetoothMode蓝牙传输协议。详见 ByteRTCBluetoothMode。

注意
以下场景你会收到 rtcEngine:onAudioDeviceWarning:deviceType:deviceWarning: 回调:1)当前不支持设置 HFP;2)非纯媒体音频场景,建议在调用此接口前调用 setAudioScenario:设置纯媒体音频场景。

setLocalVoicePitch:
- (void)setLocalVoicePitch:(NSInteger)pitch;
objectivec

开启本地语音变调功能,多用于 K 歌场景。

使用该方法,你可以对本地语音的音调进行升调或降调等调整。

传入参数

参数名类型说明
pitchNSInteger相对于语音原始音调的升高/降低值,取值范围[-12,12],默认值为 0,即不做调整。
取值范围内每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调,设置的绝对值越大表示音调升高或降低越多。
超出取值范围则设置失败,并且会触发 rtcEngine:onWarning: 回调,提示 ByteRTCWarningCode 错误码为 WARNING_CODE_SET_SCREEN_STREAM_INVALID_VOICE_PITCH 设置语音音调不合法

enableVocalInstrumentBalance:
- (void)enableVocalInstrumentBalance:(BOOL)enable;
objectivec

开启/关闭音量均衡功能。

开启音量均衡功能后,人声的响度会调整为 -16lufs。如果已调用 setAudioMixingLoudness:loudness: 传入了混音音乐的原始响度,此音乐播放时,响度会调整为 -20lufs。

传入参数

参数名类型说明
enableBOOL是否开启音量均衡功能:
• YES: 是
• NO: 否

注意
该接口须在调用 startAudioMixing:filePath:config: 开始播放音频文件之前调用。

enablePlaybackDucking:
- (void)enablePlaybackDucking:(BOOL)enable;
objectivec

打开/关闭音量闪避功能,适用于在 RTC 通话过程中会同时播放短视频或音乐的场景,如“一起看”、“在线 KTV”等。

开启该功能后,当检测到远端人声时,本地的媒体播放音量会自动减弱,从而保证远端人声的清晰可辨;当远端人声消失时,本地媒体音量会恢复到闪避前的音量水平。

传入参数

参数名类型说明
enableBOOL是否开启音量闪避:
• YES: 是
• NO: 否

setLocalVideoSink:withSink:withPixelFormat:
- (void)setLocalVideoSink:(ByteRTCStreamIndex)index withSink:(id<ByteRTCVideoSinkDelegate> _Nullable)videoSink withPixelFormat:(ByteRTCVideoSinkPixelFormat)requiredFormat;
objectivec

将本地视频流与自定义渲染器绑定。

传入参数

参数名类型说明
indexByteRTCStreamIndex视频流属性。采集的视频流/屏幕视频流,参看 ByteRTCStreamIndex
videoSinkid自定义视频渲染器,参看 ByteRTCVideoSinkDelegate
requiredFormatByteRTCVideoSinkPixelFormatvideoSink 适用的视频帧编码格式,参看 ByteRTCVideoSinkPixelFormat

注意

setRemoteVideoSink:withSink:withPixelFormat:
- (void)setRemoteVideoSink:(ByteRTCRemoteStreamKey* _Nonnull)streamKey withSink:(id<ByteRTCVideoSinkDelegate> _Nullable)videoSink withPixelFormat:(ByteRTCVideoSinkPixelFormat)requiredFormat;
objectivec

将远端视频流与自定义渲染器绑定。

传入参数

参数名类型说明
streamKeyByteRTCRemoteStreamKey*远端流信息,用于指定需要渲染的视频流来源及属性,参看 ByteRTCRemoteStreamKey
videoSinkid自定义视频渲染器,参看 ByteRTCVideoSinkDelegate
requiredFormatByteRTCVideoSinkPixelFormatvideoSink 适用的视频帧编码格式,参看 ByteRTCVideoSinkPixelFormat

注意

setVideoEncoderConfig:config:
- (int)setVideoEncoderConfig:(ByteRTCStreamIndex)streamIndex config:(NSArray <ByteRTCVideoSolution *> * _Nullable)videoSolutions __deprecated_msg("Will be removed in new version");
objectivec

Deprecated since 3.37 and will be deleted in 3.51, use setVideoEncoderConfig: instead.

设置推送多路流时的各路视频参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。

传入参数

参数名类型说明
streamIndexByteRTCStreamIndex视频流属性,参看 ByteRTCStreamIndex。
videoSolutionsNSArray <ByteRTCVideoSolution>**要推送的多路视频流参数,参看 ByteRTCVideoSolution。
最多支持 4 路参数。当设置了多路参数时,分辨率必须是从大到小排列。
最大分辨率为 4096px × 4096px,超过或设置的分辨率无法编码时,会导致编码推流失败。

返回值

注意

enableSimulcastMode:
- (void) enableSimulcastMode:(BOOL) enabled;
objectivec

该方法设置视频流发布端是否开启发布多路编码参数不同的视频流的模式。

传入参数

参数名类型说明
enabledBOOL是否开启推送多路视频流模式:
• YES:开启
• NO:关闭(默认)

注意

setMaxVideoEncoderConfig:
- (int)setMaxVideoEncoderConfig:(ByteRTCVideoEncoderConfig * _Nullable) max_solution;
objectivec

视频发布端设置期望发布的最大分辨率视频流参数,包括分辨率、帧率、码率、网络不佳时的回退策略等。

该接口支持设置一路视频流参数,设置多路参数请使用 setVideoEncoderConfig:。

传入参数

参数名类型说明
max_solutionByteRTCVideoEncoderConfig*期望发布的最大分辨率视频流参数。参看 ByteRTCVideoEncoderConfig。

返回值
方法调用结果:

注意

setVideoEncoderConfig:
-(int)setVideoEncoderConfig:(NSArray <ByteRTCVideoEncoderConfig *> * _Nullable) channel_solutions;
objectivec

视频发布端设置推送多路流时各路流的参数,包括分辨率、帧率、码率、网络不佳时的回退策略等。

传入参数

参数名类型说明
channel_solutionsNSArray <ByteRTCVideoEncoderConfig>**要推送的多路视频流的参数,最多支持设置 3 路参数,超过 3 路时默认取前 3 路的值。
当设置了多路参数时,分辨率和帧率必须是从大到小排列。需注意,所设置的分辨率是各路流的最大分辨率。参看 ByteRTCVideoEncoderConfig。

返回值
方法调用结果:

注意

setScreenVideoEncoderConfig:
-(int)setScreenVideoEncoderConfig:(ByteRTCScreenVideoEncoderConfig * _Nullable) screen_solution;
objectivec

为发布的屏幕共享视频流设置期望的编码参数,包括分辨率、帧率、码率、网络不佳时的回退策略等。

传入参数

参数名类型说明
screen_solutionByteRTCScreenVideoEncoderConfig*屏幕共享视频流参数。参看 ByteRTCScreenVideoEncoderConfig。

返回值

注意

setVideoCaptureConfig:
- (int)setVideoCaptureConfig:(ByteRTCVideoCaptureConfig * _Nullable)captureConfig;
objectivec

设置 RTC SDK 内部采集时的视频采集参数。

如果你的项目使用了 SDK 内部采集模块,可以通过本接口指定视频采集参数包括模式、分辨率、帧率。

传入参数

参数名类型说明
captureConfigByteRTCVideoCaptureConfig*视频采集参数。参看: ByteRTCVideoCaptureConfig。

返回值

注意

setLocalVideoCanvas:withCanvas:
- (int)setLocalVideoCanvas:(ByteRTCStreamIndex)streamIndex withCanvas:(ByteRTCVideoCanvas * _Nullable)canvas;
objectivec

设置本地视频渲染时使用的视图,并设置渲染模式。

传入参数

参数名类型说明
streamIndexByteRTCStreamIndex流属性,参看 ByteRTCStreamIndex
canvasByteRTCVideoCanvas*视图信息和渲染模式,参看 ByteRTCVideoCanvas

返回值

注意

updateLocalVideoCanvas:withRenderMode:withBackgroundColor:
- (void)updateLocalVideoCanvas:(ByteRTCStreamIndex)streamIndex withRenderMode:(ByteRTCRenderMode)renderMode withBackgroundColor:(NSUInteger)backgroundColor;
objectivec

修改本地视频渲染模式和背景色。

传入参数

参数名类型说明
streamIndexByteRTCStreamIndex视频流属性。参看 ByteRTCStreamIndex
renderModeByteRTCRenderMode渲染模式。参看 ByteRTCRenderMode
backgroundColorNSUInteger背景颜色。参看 ByteRTCVideoCanvas.backgroundColor

注意
你可以在本地视频渲染过程中,调用此接口。调用结果会实时生效。

setRemoteVideoCanvas:withCanvas:
- (void)setRemoteVideoCanvas:(ByteRTCRemoteStreamKey * _Nonnull)key withCanvas:(ByteRTCVideoCanvas * _Nullable)canvas;
objectivec

渲染来自指定远端用户 uid 的视频流时,设置使用的视图和渲染模式。

如果需要解除视频的绑定视图,把 canvas.view 设置为空。(canvas 中其他参数不能为空。)

传入参数

参数名类型说明
keyByteRTCRemoteStreamKey*远端流信息, 详见 ByteRTCRemoteStreamKey
canvasByteRTCVideoCanvas*视图信息和渲染模式,参看 ByteRTCVideoCanvas

注意
本地用户离开房间时,会解除调用此 API 建立的绑定关系;远端用户离开房间则不会影响。

updateRemoteStreamVideoCanvas:withRenderMode:withBackgroundColor:
- (void)updateRemoteStreamVideoCanvas:(ByteRTCRemoteStreamKey * _Nonnull)key withRenderMode:(ByteRTCRenderMode)renderMode withBackgroundColor:(NSUInteger)backgroundColor;
objectivec

修改远端视频渲染模式和背景色。

传入参数

参数名类型说明
keyByteRTCRemoteStreamKey*远端流信息, 详见 ByteRTCRemoteStreamKey
renderModeByteRTCRenderMode渲染模式,参看 ByteRTCRenderMode
backgroundColorNSUInteger背景颜色,参看 ByteRTCVideoCanvas.backgroundColor

注意
你可以在远端视频渲染过程中,调用此接口。调用结果会实时生效。

startVideoCapture
- (void)startVideoCapture;
objectivec

立即开启内部视频采集。默认为关闭状态。

内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。

调用该方法后,本地用户会收到 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error: 的回调。

非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStartVideoCapture:uid: 的回调。

注意

stopVideoCapture
- (void)stopVideoCapture;
objectivec

立即关闭内部视频采集。默认为关闭状态。

内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。

调用该方法后,本地用户会收到 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error: 的回调。

非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStopVideoCapture:uid: 的回调。

注意

setLocalVideoMirrorType:
- (void)setLocalVideoMirrorType:(ByteRTCMirrorType) mirrorType;
objectivec

为采集到的视频流开启镜像

传入参数

参数名类型说明
mirrorTypeByteRTCMirrorType镜像类型,参看 ByteRTCMirrorType

注意

前置摄像头后置摄像头自定义采集视频源 桌面端摄像头
移动端本地预览镜像,编码传输不镜像 本地预览不镜像,编码传输不镜像 本地预览不镜像,编码传输不镜像 /
桌面端// 本地预览不镜像,编码传输不镜像 本地预览镜像,编码传输不镜像

setVideoRotationMode:
- (void)setVideoRotationMode:(ByteRTCVideoRotationMode) rotationMode;
objectivec

设置采集视频的旋转模式。默认以 App 方向为旋转参考系。

接收端渲染视频时,将按照和发送端相同的方式进行旋转。

传入参数

参数名类型说明
rotationModeByteRTCVideoRotationMode视频旋转参考系为 App 方向或重力方向,参看 ByteRTCVideoRotationMode。

注意

setVideoOrientation:
- (void)setVideoOrientation:(ByteRTCVideoOrientation) orientation;
objectivec

在自定义视频前处理及编码前,设置 RTC 链路中的视频帧朝向,默认为 Adaptive 模式。
移动端开启视频特效贴纸,或使用自定义视频前处理时,建议固定视频帧朝向为 Portrait 模式。单流转推场景下,建议根据业务需要固定视频帧朝向为 Portrait 或 Landscape 模式。不同模式的具体显示效果参看视频帧朝向。

传入参数

参数名类型说明
orientationByteRTCVideoOrientation视频帧朝向,参看 ByteRTCVideoOrientation。

注意

switchCamera:
- (void)switchCamera:(ByteRTCCameraID) cameraId;
objectivec

切换视频内部采集时使用的前置/后置摄像头

调用此接口后,在本地会触发 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error: 回调。

传入参数

参数名类型说明
cameraIdByteRTCCameraID摄像头类型,参看 ByteRTCCameraID。

注意

getVideoEffectInterface
- (ByteRTCVideoEffect* _Null_unspecified)getVideoEffectInterface;
objectivec

获取视频特效接口。

返回值
视频特效接口,参看 ByteRTCVideoEffect。

checkVideoEffectLicense:
- (int)checkVideoEffectLicense:(NSString * _Nonnull)licenseFile;
objectivec

Deprecated since 3.50 and will be deleted in 3.55, use initCVResource:withAlgoModelDir: instead.

视频特效许可证检查

传入参数

参数名类型说明
licenseFileNSString*许可证文件绝对路径

返回值

注意
enableVideoEffect 开始使用视频特效前,需要先调用这个方法进行许可证验证

setVideoEffectAlgoModelPath:
- (void)setVideoEffectAlgoModelPath:(NSString * _Nonnull)modelPath __deprecated_msg("Will be removed in new version");
objectivec

Deprecated since 3.50 and will be deleted in 3.55, use initCVResource:withAlgoModelDir: instead.

设置视频特效算法模型路径

传入参数

参数名类型说明
modelPathNSString*模型路径

enableVideoEffect:
- (int)enableVideoEffect:(BOOL)enabled;
objectivec

Deprecated since 3.50 and will be deleted in 3.55, use enableVideoEffect instead.

创建/销毁视频特效引擎

传入参数

参数名类型说明
enabledBOOL是否创建视频特效引擎
• YES: 创建
• NO: 销毁

返回值

注意

setVideoEffectNodes:
- (int) setVideoEffectNodes:(NSArray <NSString *> *_Nonnull)effectNodePaths __deprecated_msg("Will be removed in new version");
objectivec

Deprecated since 3.50 and will be deleted in 3.55, use setEffectNodes: instead.

设置视频特效素材包

传入参数

参数名类型说明
effectNodePathsNSArray <NSString>**特效素材包路径数组
要取消当前视频特效,将此参数设置为 null。

返回值

注意
在调用这个方法之前,你须先调用 enableVideoEffect 。

updateVideoEffectNode:nodeKey:nodeValue:
- (int) updateVideoEffectNode:(NSString * _Nonnull)nodePath nodeKey:(NSString * _Nonnull)nodeKey nodeValue:(float) nodeValue;
objectivec

Deprecated since 3.50 and will be deleted in 3.55, use updateEffectNode:key:value: instead.

设置特效强度

传入参数

参数名类型说明
nodePathNSString*特效素材包路径。
nodeKeyNSString*需要设置的素材 key 名称。参看 素材key对应说明。
nodeValuefloat需要设置的强度值。取值范围为 [0,1],超出该范围设置无效。

返回值

注意
该接口仅适用于同时含有上述三个参数的特效资源,对于如大部分贴纸类等没有强度参数的特效,该接口调用无效。

setVideoEffectColorFilter:
- (int) setVideoEffectColorFilter:(NSString * _Nonnull)resPath __deprecated_msg("Will be removed in new version");
objectivec

Deprecated since 3.50 and will be deleted in 3.55, use setColorFilter: instead.

设置颜色滤镜

传入参数

参数名类型说明
resPathNSString*滤镜资源包绝对路径

返回值

setVideoEffectColorFilterIntensity:
- (int) setVideoEffectColorFilterIntensity:(float) intensity __deprecated_msg("Will be removed in new version");
objectivec

Deprecated since 3.50 and will be deleted in 3.55, use setColorFilterIntensity: instead.

设置已启用的颜色滤镜强度

传入参数

参数名类型说明
intensityfloat滤镜强度。取值范围 [0,1],超出范围时设置无效

返回值

setBackgroundSticker:source:
- (int) setBackgroundSticker:(NSString* _Nullable)modelPath source:(ByteRTCVirtualBackgroundSource* _Nonnull)source __deprecated_msg("Will be removed in new version");
objectivec

Deprecated since 3.50 and will be deleted in 3.55, use enableVirtualBackground:withSource: instead.

将摄像头采集画面中的人像背景替换为指定图片或纯色背景。
若要取消背景特效,将背景贴纸特效素材路径设置为null。

传入参数

参数名类型说明
modelPathNSString*传入背景贴纸特效素材路径。
sourceByteRTCVirtualBackgroundSource*设置背景特效图片的本地路径。参看 ByteRTCVirtualBackgroundSource。

返回值

注意
调用此接口前需依次调用以下接口:1、检查视频特效许可证 initCVResource:withAlgoModelDir:;2、设置视频特效算法模型路径 setVideoEffectAlgoModelPath:;3、开启视频特效 enableVideoEffect。

registerFaceDetectionObserver:withInterval:
- (int) registerFaceDetectionObserver:(_Nullable id<ByteRTCFaceDetectionObserver>)faceDetectionObserver withInterval:(NSInteger)interval;
objectivec

Deprecated since 3.50 and will be deleted in 3.55, use registerFaceDetectionObserver:withInterval: instead.

注册人脸检测结果回调观察者

注册此观察者后,你会周期性收到 onFaceDetectResult: 回调。

传入参数

参数名类型说明
faceDetectionObserverid人脸检测结果回调观察者,参看 ByteRTCFaceDetectionObserver。
intervalNSInteger时间间隔,必须大于 0。单位:ms。实际收到回调的时间间隔大于 interval,小于 interval • 视频采集帧间隔。

返回值

enableEffectBeauty:
- (int) enableEffectBeauty:(BOOL)enable;
objectivec

开启/关闭基础美颜。

传入参数

参数名类型说明
enableBOOL基础美颜开关
• YES: 开启基础美颜
• NO: 关闭基础美颜(默认)

返回值

注意

setBeautyIntensity:withIntensity:
- (int) setBeautyIntensity:(ByteRTCEffectBeautyMode) beautyMode withIntensity:(float)intensity;
objectivec

调整基础美颜强度。

传入参数

参数名类型说明
beautyModeByteRTCEffectBeautyMode基础美颜模式,参看 ByteRTCEffectBeautyMode。
intensityfloat美颜强度,取值范围为 [0,1]。强度为 0 表示关闭,默认强度为 0.5。

返回值

注意

setCameraZoomRatio:
- (int) setCameraZoomRatio: (float) zoom_val;
objectivec

设置当前使用的摄像头(前置/后置)的光学变焦倍数

传入参数

参数名类型说明
zoom_valfloat变焦倍数。取值范围是 [1, <最大变焦倍数>]。
最大变焦倍数可以通过调用 getCameraZoomMaxRatio 获取。

返回值

注意

getCameraZoomMaxRatio
- (float) getCameraZoomMaxRatio;
objectivec

获取当前使用的摄像头(前置/后置)的最大变焦倍数

返回值
最大变焦倍数

注意
必须已调用 startVideoCapture 使用 SDK 内部采集模块进行视频采集时,才能检测摄像头最大变焦倍数。

isCameraZoomSupported
- (bool) isCameraZoomSupported;
objectivec

检测当前使用的摄像头(前置/后置),是否支持变焦(数码/光学变焦)。

返回值

注意
必须已调用 startVideoCapture 使用 SDK 内部采集模块进行视频采集时,才能检测摄像头变焦能力。

isCameraTorchSupported
- (bool) isCameraTorchSupported;
objectivec

检测当前使用的摄像头(前置/后置),是否支持闪光灯。

返回值

注意
必须已调用 startVideoCapture 使用 SDK 内部采集模块进行视频采集时,才能检测闪光能力。

setCameraTorch:
- (int) setCameraTorch: (ByteRTCTorchState)torch_state;
objectivec

打开/关闭当前使用的摄像头(前置/后置)的闪光灯

传入参数

参数名类型说明
torch_stateByteRTCTorchState打开/关闭。参看 ByteRTCTorchState。

返回值

注意

isCameraFocusPositionSupported
- (bool)isCameraFocusPositionSupported;
objectivec

检查当前使用的摄像头是否支持手动对焦。

返回值

注意
必须已调用 startVideoCapture 使用 SDK 内部采集模块进行视频采集,才能检查摄像头是否支持手动对焦。

setCameraFocusPosition:
- (int)setCameraFocusPosition:(CGPoint)position;
objectivec

设置当前使用的摄像头的对焦点。

传入参数

参数名类型说明
positionCGPoint对焦点坐标。以本地预览画布的左上为坐标原点,position的x字段为对焦点水平方向归一化坐标,y字段为对焦点垂直方向归一化坐标,取值范围为 [0, 1]。

返回值

注意

isCameraExposurePositionSupported
- (bool)isCameraExposurePositionSupported;
objectivec

检查当前使用的摄像头是否支持手动设置曝光点。

返回值

注意
必须已调用 startVideoCapture 使用 SDK 内部采集模块进行视频采集时,才能检查曝光点设置能力。

setCameraExposurePosition:
- (int)setCameraExposurePosition:(CGPoint)position;
objectivec

设置当前使用的摄像头的曝光点。

传入参数

参数名类型说明
positionCGPoint曝光点坐标。以本地预览画布的左上为坐标原点,position的x字段为曝光点水平方向归一化坐标,y字段为曝光点垂直方向归一化坐标,取值范围为 [0, 1]。

返回值

注意

setCameraExposureCompensation:
- (int)setCameraExposureCompensation:(float)val;
objectivec

设置当前使用的摄像头的曝光补偿。

传入参数

参数名类型说明
valfloat曝光补偿值,取值范围 [-1, 1],0 为系统默认值(没有曝光补偿)。

返回值

注意

sendSEIMessage:andMessage:andRepeatCount:
- (int)sendSEIMessage:(ByteRTCStreamIndex)streamIndex andMessage:(NSData* _Nonnull)message andRepeatCount:(int)repeatCount __deprecated_msg("Will be removed in new version");
objectivec

Deprecated since 3.50 and will be deleted in 3.55, use sendSEIMessage:andMessage:andRepeatCount:andCountPerFrame: instead.

通过视频帧发送 SEI 数据。

在视频通话场景下,SEI 数据会随视频帧发送;在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据。

传入参数

参数名类型说明
streamIndexByteRTCStreamIndex指定携带 SEI 数据的媒体流类型,参看 ByteRTCStreamIndex。
语音通话场景下,该值需设为 ByteRTCStreamIndexMain,否则 SEI 数据会被丢弃从而无法送达远端。
messageNSData*SEI 消息。长度不超过 4KB。
repeatCountint消息发送重复次数。取值范围是 [0, 30]。
调用此接口后,SEI 数据会添加到从当前视频帧开始的连续 repeatCount+1 个视频帧中。

返回值

注意

sendSEIMessage:andMessage:andRepeatCount:andCountPerFrame:
- (int)sendSEIMessage:(ByteRTCStreamIndex)streamIndex andMessage:(NSData* _Nonnull)message andRepeatCount:(int)repeatCount andCountPerFrame:(ByteRTCSEICountPerFrame) mode;
objectivec

通过视频帧发送 SEI 数据。
在视频通话场景下,SEI 数据会随视频帧发送;在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据。

传入参数

参数名类型说明
streamIndexByteRTCStreamIndex指定携带 SEI 数据的媒体流类型,参看 ByteRTCStreamIndex。
语音通话场景下,该值需设为 ByteRTCStreamIndexMain,否则 SEI 数据会被丢弃从而无法送达远端。
messageNSData*SEI 消息,建议每帧 SEI 数据总长度长度不超过 4 KB。
repeatCountint消息发送重复次数。取值范围是 [0, max{29, %{视频帧率}-1}]。推荐范围 [2,4]。
调用此接口后,SEI 数据会添加到从当前视频帧开始的连续 repeatCount+1 个视频帧中。
modeByteRTCSEICountPerFrameSEI 发送模式,参看 ByteRTCSEICountPerFrame。

返回值

注意

setVideoDigitalZoomConfig:size:
- (void)setVideoDigitalZoomConfig:(ByteRTCZoomConfigType)type size:(float)size;
objectivec

Available since 3.51

设置本地摄像头数码变焦参数,包括缩放倍数,移动步长。

传入参数

参数名类型说明
typeByteRTCZoomConfigType数码变焦参数类型,缩放系数或移动步长。参看 ByteRTCZoomConfigType。必填。
sizefloat缩放系数或移动步长,保留到小数点后三位。默认值为 0。必填。
选择不同 type 时有不同的取值范围。当计算后的结果超过缩放和移动边界时,取临界值。
• ByteRTCZoomFocusOffset:缩放系数增量,范围为 [0, 7]。例如,设置为 0.5 时,如果调用 setVideoDigitalZoomControl: 选择 Zoom in,则缩放系数增加 0.5。缩放系数范围 [1,8],默认为 1,原始大小。
• ByteRTCZoomMoveOffset:移动百分比,范围为 [0, 0.5],默认为 0,不移动。如果调用 setVideoDigitalZoomControl: 选择的是左右移动,则移动距离为 size x 原始视频宽度;如果选择的是上下移动,则移动距离为 size x 原始视频高度。例如,视频帧边长为 1080 px,设置为 0.5 时,实际移动距离为 0.5 x 1080 px = 540 px。

注意

setVideoDigitalZoomControl:
- (void)setVideoDigitalZoomControl:(ByteRTCZoomDirectionType) direction;
objectivec

Available since 3.51

控制本地摄像头数码变焦,缩放或移动一次。设置对本地预览画面和发布到远端的视频都生效。

传入参数

参数名类型说明
directionByteRTCZoomDirectionType数码变焦操作类型,参看 ByteRTCZoomDirectionType。

注意

startVideoDigitalZoomControl:
- (void)startVideoDigitalZoomControl:(ByteRTCZoomDirectionType)direction;
objectivec

Available since 3.51

开启本地摄像头持续数码变焦,缩放或移动。设置对本地预览画面和发布到远端的视频都生效。

传入参数

参数名类型说明
directionByteRTCZoomDirectionType数码变焦操作类型,参看 ByteRTCZoomDirectionType。

注意

stopVideoDigitalZoomControl
- (void)stopVideoDigitalZoomControl;
objectivec

Available since 3.51

停止本地摄像头持续数码变焦。

注意
关于开始数码变焦,参看 startVideoDigitalZoomControl:。

registerLocalVideoProcessor:withConfig:
- (int)registerLocalVideoProcessor:(_Nullable id<ByteRTCVideoProcessorDelegate>) processor withConfig:(ByteRTCVideoPreprocessorConfig* _Nullable)config;
objectivec

设置自定义视频前处理器。

使用这个视频前处理器,你能够调用 processVideoFrame: 对 RTC SDK 采集得到的视频帧进行前处理,并将处理后的视频帧用于 RTC 音视频通信。

传入参数

参数名类型说明
processorid自定义视频处理器,详见 ByteRTCVideoProcessorDelegate。如果传入 null,则不对 RTC SDK 采集得到的视频帧进行前处理。
SDK 只持有 processor 的弱引用,你应保证其生命周期。
在设计 processor 时,应从 ByteRTCVideoFrame 的 textureBuf 字段获取视频帧数据;
处理后返回的视频帧数据格式应为 ByteRTCVideoPixelFormat 中的 ByteRTCVideoPixelFormatCVPixelBuffer,且必须存放在返回帧数据的 textureBuf 字段中。
configByteRTCVideoPreprocessorConfig*自定义视频前处理器适用的设置,详见 ByteRTCVideoPreprocessorConfig。
当前,config 中的 required_pixel_format 仅支持:ByteRTCVideoPixelFormatI420 和 ByteRTCVideoPixelFormatUnknown:
• 设置为 UNKNOW 时,RTC SDK 给出供 processor 处理的视频帧格式即采集的格式。
• 设置为 ByteRTCVideoPixelFormatI420 时,RTC SDK 会将采集得到的视频转变为对应的格式,供前处理使用。
• 设置为其他值时,此方法调用失败。

返回值

注意

registerLocalEncodedVideoFrameObserver:
- (void)registerLocalEncodedVideoFrameObserver:(_Nullable id<ByteRTCLocalEncodedVideoFrameObserver>) frameObserver;
objectivec

注册本地视频帧监测器。

无论使用内部采集还是自定义采集,调用该方法后,SDK 每监测到一帧本地视频帧时,都会将视频帧信息通过 onLocalEncodedVideoFrame:Frame: 回调给用户

传入参数

参数名类型说明
frameObserverid本地视频帧监测器,参看 ByteRTCLocalEncodedVideoFrameObserver。将参数设置为 nullptr 则取消注册。

注意
该方法可在进房前后任意时间调用,在进房前调用可保证尽可能早地监测视频帧并触发回调

setAudioPlaybackDevice:
- (int)setAudioPlaybackDevice:(ByteRTCAudioPlaybackDevice)audioPlaybackDevice __deprecated_msg("Will be removed in new version");
objectivec

Deprecated since 3.38 and will be deleted in 3.51, use setAudioRoute: instead.

设置音频播放设备为扬声器或者听筒,默认使用扬声器。

音频播放设备发生变化时,会收到 rtcEngine:onAudioPlaybackDeviceChanged: 回调。

传入参数

参数名类型说明
audioPlaybackDeviceByteRTCAudioPlaybackDevice音频播放设备(扬声器或者听筒),详见 ByteRTCAudioPlaybackDevice。

返回值
方法调用结果

注意

setAudioRoute:
- (void)setAudioRoute:(ByteRTCAudioRoute)audioRoute;
objectivec

强制切换当前的音频播放路由。默认使用 setDefaultAudioRoute: 中设置的音频路由。
音频播放路由发生变化时,会收到 rtcEngine:onAudioRouteChanged: 回调。

传入参数

参数名类型说明
audioRouteByteRTCAudioRoute音频播放路由,参见 ByteRTCAudioRoute。仅支持扬声器和默认路由设备。

注意

getAudioRoute
- (ByteRTCAudioRoute)getAudioRoute;
objectivec

获取当前使用的音频播放路由。

返回值
详见 ByteRTCAudioRoute

注意
要设置音频路由,详见 setAudioRoute:,仅适用于移动端。

enableExternalSoundCard:
- (void)enableExternalSoundCard:(bool)enable;
objectivec

启用匹配外置声卡的音频处理模式

传入参数

参数名类型说明
enablebool• true: 开启
• false: 不开启(默认)

注意

setDefaultAudioRoute:
- (int)setDefaultAudioRoute:(ByteRTCAudioRoute)audioRoute;
objectivec

将默认的音频播放设备设置为听筒或扬声器。

传入参数

参数名类型说明
audioRouteByteRTCAudioRoute音频播放设备。参看 ByteRTCAudioRoute。仅支持听筒或扬声器。

返回值

注意
对于音频路由切换逻辑,参见移动端设置音频路由。

startLiveTranscoding:transcoding:observer:
- (void)startLiveTranscoding:(NSString * _Nonnull)task_id transcoding:(ByteRTCLiveTranscoding *_Nullable)transcoding observer:(id<LiveTranscodingDelegate> _Nullable)observer __deprecated_msg("deprecated since 352, will be deleted in 358, use startPushMixedStreamToCDN instead");
objectivec

Deprecated since 3.52, will be deleted in 3.58, use startPushMixedStreamToCDN:mixedConfig:observer: instead.

新增转推直播任务,并设置合流的图片、视频视图布局和音频属性。

同一个任务中转推多路直播流时,SDK 会先将多路流合成一路流,然后再进行转推。

传入参数

参数名类型说明
task_idNSString*转推直播任务 ID,长度不超过 126 字节。
你可以在同一房间内发起多个转推直播任务,并用不同的任务 ID 加以区分。当你需要发起多个转推直播任务时,应使用多个 ID;当你仅需发起一个转推直播任务时,建议使用空字符串。
transcodingByteRTCLiveTranscoding*转推直播配置参数,详见 ByteRTCLiveTranscoding。
observerid端云一体转推直播观察者。详见 LiveTranscodingDelegate。
通过注册 observer 接收转推直播相关的回调。

注意

stopLiveTranscoding:
- (void)stopLiveTranscoding:(NSString *_Nonnull)task_id __deprecated_msg("deprecated since 352, will be deleted in 358, use stopPushStreamToCDN instead");
objectivec

Deprecated since 3.52, will be deleted in 3.58, use stopPushStreamToCDN: instead.

停止转推直播,会收到 onStreamMixingEvent:taskId:error:mixType: 回调。

关于启动转推直播,参看 startLiveTranscoding:transcoding:observer:。

传入参数

参数名类型说明
task_idNSString*转推直播任务 ID。可以指定想要停止的转推直播任务。

updateLiveTranscoding:transcoding:
- (int)updateLiveTranscoding:(NSString *_Nonnull)task_id transcoding:(ByteRTCLiveTranscoding *_Nonnull)transcoding __deprecated_msg("deprecated since 352, will be deleted in 358, use updatePushMixedStreamToCDN instead");
objectivec

Deprecated since 3.52, will be deleted in 3.58, use updatePushMixedStreamToCDN:mixedConfig: instead.

更新转推直播参数,会收到 onStreamMixingEvent:taskId:error:mixType: 回调。

开启转推直播功能后,你可以使用此方法更新合流转推功能配置参数。

传入参数

参数名类型说明
task_idNSString*转推直播任务 ID。指定想要更新参数设置的转推直播任务。
transcodingByteRTCLiveTranscoding*转推直播配置参数,参看 ByteRTCLiveTranscoding。除特殊说明外,均支持过程中更新。
调用时,结构体中没有传入值的属性,会被更新为默认值。

返回值
方法调用结果。

startPushMixedStreamToCDN:mixedConfig:observer:
- (int)startPushMixedStreamToCDN:(NSString * _Nonnull)task_id mixedConfig:(ByteRTCMixedStreamConfig *_Nullable)config observer:(id<ByteRTCMixedStreamObserver> _Nullable)observer;
objectivec

Available since 3.52

新增合流转推直播任务,并设置合流的图片、视频视图布局和音频属性。

同一个任务中转推多路直播流时,SDK 会先将多路流合成一路流,然后再进行转推。

传入参数

参数名类型说明
task_idNSString*转推直播任务 ID,长度不超过 126 字节。
你可以在同一房间内发起多个转推直播任务,并用不同的任务 ID 加以区分。当你需要发起多个转推直播任务时,应使用多个 ID;当你仅需发起一个转推直播任务时,建议使用空字符串。
configByteRTCMixedStreamConfig*转推直播配置参数,详见 ByteRTCMixedStreamConfig。
observerid端云一体转推直播观察者。详见 ByteRTCMixedStreamObserver。
通过注册 observer 接收转推直播相关的回调。

返回值
方法调用结果。

注意

updatePushMixedStreamToCDN:mixedConfig:
- (int)updatePushMixedStreamToCDN:(NSString *_Nonnull)task_id mixedConfig:(ByteRTCMixedStreamConfig *_Nonnull)config;
objectivec

Available since 3.52

更新合流转推直播参数,会收到 onMixingEvent:taskId:error:mixType: 回调。

开启转推直播功能后,你可以使用此方法更新合流转推功能配置参数。

传入参数

参数名类型说明
task_idNSString*转推直播任务 ID。指定想要更新参数设置的转推直播任务。
configByteRTCMixedStreamConfig*转推直播配置参数,参看 ByteRTCMixedStreamConfig。除特殊说明外,均支持过程中更新。
调用时,结构体中没有传入值的属性,会被更新为默认值。

返回值
方法调用结果。

startPushSingleStreamToCDN:singleStream:observer:
- (void)startPushSingleStreamToCDN:(NSString *_Nonnull)task_id singleStream:(ByteRTCPushSingleStreamParam *_Nonnull)singleStream observer:(id<ByteRTCPushSingleStreamToCDNObserver>_Nullable)observer;
objectivec

新增单流转推直播任务。

传入参数

参数名类型说明
task_idNSString*任务 ID。
你可以发起多个转推直播任务,并用不同的任务 ID 加以区分。当你需要发起多个转推直播任务时,应使用多个 ID;当你仅需发起一个转推直播任务时,建议使用空字符串。
singleStreamByteRTCPushSingleStreamParam*转推直播配置参数。详见 ByteRTCPushSingleStreamParam。
observerid单流转推直播观察者。详见 ByteRTCPushSingleStreamToCDNObserver。
通过注册 observer 接收单流转推直播相关的回调。

注意

stopPushStreamToCDN:
- (int)stopPushStreamToCDN:(NSString *_Nonnull)task_id;
objectivec

停止转推直播。

该方法可用于停止单流转推直播或停止合流转推直播,通过 taskId 区分需要停止的任务。

传入参数

参数名类型说明
task_idNSString*任务 ID。可以指定想要停止的单流转推直播或合流转推直播任务。

注意

startPushPublicStream:withLayout:
- (int)startPushPublicStream:(NSString * _Nonnull)publicStreamId withLayout:(ByteRTCPublicStreaming *_Nullable)publicStream;
objectivec

发布一路公共流

用户可以指定房间内多个用户发布的媒体流合成一路公共流。使用同一 appID 的用户,可以调用 startPlayPublicStream: 获取和播放指定的公共流。

传入参数

参数名类型说明
publicStreamIdNSString*公共流 ID。
publicStreamNSString*公共流参数。详见 ByteRTCPublicStreaming。
一路公共流可以包含多路房间内的媒体流,按照指定的布局方式进行聚合。
如果指定的媒体流还未发布,则公共流将在指定流开始发布后实时更新。

返回值

注意

stopPushPublicStream:
- (int)stopPushPublicStream:(NSString * _Nonnull)publicStreamId;
objectivec

停止发布当前用户发布的公共流

关于发布公共流,查看 startPushPublicStream:withLayout:。

传入参数

参数名类型说明
publicStreamIdNSString*公共流 ID
指定的流必须为当前用户所发布。

返回值

updatePublicStreamParam:withLayout:
- (int)updatePublicStreamParam:(NSString * _Nonnull)publicStreamId withLayout:(ByteRTCPublicStreaming *_Nullable)publicStream;
objectivec

更新公共流参数

关于发布公共流,查看 startPushPublicStream:withLayout:。
建议调用更新公共流前判断公共流是否已经成功启动,相关回调详见 rtcEngine:onPushPublicStreamResult:publicStreamId:errorCode:。

传入参数

参数名类型说明
publicStreamIdNSString*公共流ID
指定的流必须为当前用户所发布的。
publicStreamNSString*推公共流配置参数。详见 ByteRTCPublicStreaming。

返回值

注意
调用本接口前需要通过 rtcEngine:onPushPublicStreamResult:publicStreamId:errorCode: 确认公共流是否已经成功启动。

startPlayPublicStream:
- (int)startPlayPublicStream:(NSString * _Nonnull)publicStreamId;
objectivec

订阅指定公共流

无论用户是否在房间内,都可以调用本接口获取和播放指定的公共流。

传入参数

参数名类型说明
publicStreamIdNSString*公共流ID,如果指定流暂未发布,则本地客户端将在其开始发布后接收到流数据。

返回值

注意

stopPlayPublicStream:
- (int)stopPlayPublicStream:(NSString * _Nonnull)publicStreamId;
objectivec

取消订阅指定公共流

关于订阅公共流,查看 startPlayPublicStream:。

传入参数

参数名类型说明
publicStreamIdNSString*公共流ID

返回值

setPublicStreamVideoCanvas:withCanvas:
- (int)setPublicStreamVideoCanvas:(NSString *_Nonnull)publicStreamId withCanvas:(ByteRTCVideoCanvas * _Nullable)canvas;
objectivec

为指定公共流绑定内部渲染视图。

传入参数

参数名类型说明
publicStreamIdNSString*公共流ID
canvasByteRTCVideoCanvas*内部渲染视图,如果需要解除视频的绑定视图,把 videoCanvas 设置为空。详见 ByteRTCVideoCanvas

返回值

setPublicStreamVideoSink:withSink:withPixelFormat:
- (int)setPublicStreamVideoSink:(NSString *_Nonnull)publicStreamId withSink:(id<ByteRTCVideoSinkDelegate> _Nullable)videoSink withPixelFormat:(ByteRTCVideoSinkPixelFormat)requiredFormat;
objectivec

为指定公共流绑定自定义渲染器。详见自定义视频渲染。

传入参数

参数名类型说明
publicStreamIdNSString*公共流ID
videoSinkid自定义视频渲染器,需要释放渲染器资源时,将 videoSink 设置为 null。参看 ByteRTCVideoSinkDelegate
requiredFormatByteRTCVideoSinkPixelFormatvideoSink 适用的视频帧编码格式,参看 ByteRTCVideoSinkPixelFormat

返回值

setPublicStreamAudioPlaybackVolume:volume:
- (int)setPublicStreamAudioPlaybackVolume:(NSString *_Nonnull)publicStreamId volume:(NSInteger)volume;
objectivec

Available since 3.51

调节公共流的音频播放音量。

传入参数

参数名类型说明
publicStreamIdNSString*公共流 ID
volumeNSInteger音频播放音量值和原始音量值的比值,该比值的范围是 [0, 400],单位为 %,且自带溢出保护。为保证更好的音频质量,建议设定在 [0, 100] 之间,其中 100 为系统默认值。

返回值

pushExternalVideoFrame:
- (int)pushExternalVideoFrame:(ByteRTCVideoFrame * _Nonnull)frame;
objectivec

推送外部视频帧。

传入参数

参数名类型说明
frameByteRTCVideoFrame*该视频帧包含待 SDK 编码的视频数据,参考 ByteRTCVideoFrame。。

返回值
方法调用结果:

注意
推送外部视频帧前,必须调用 setVideoSourceType:WithStreamIndex: 开启外部视频源采集。

enableAudioFrameCallback:format:
- (void)enableAudioFrameCallback:(ByteRTCAudioFrameCallbackMethod) method format:(ByteRTCAudioFormat* _Nullable)format;
objectivec

设置并开启指定的音频数据帧回调

传入参数

参数名类型说明
methodByteRTCAudioFrameCallbackMethod音频回调方法,参看 ByteRTCAudioFrameCallbackMethod。
当音频回调方法设置为 0、1、2时,你需要在参数 format 中指定准确的采样率和声道,暂不支持设置为自动。
当音频回调方法设置为 3时,暂不支持音频参数格式中设置准确的采样率和声道,你需要设置为自动。
formatByteRTCAudioFormat*音频参数格式,参看 ByteRTCAudioFormat。

注意
开启音频回调并调用 registerAudioFrameObserver: 后,ByteRTCAudioFrameObserver 会收到对应的音频回调。两者调用顺序没有限制且相互独立。

disableAudioFrameCallback:
- (void)disableAudioFrameCallback:(ByteRTCAudioFrameCallbackMethod) method;
objectivec

关闭音频回调

传入参数

参数名类型说明
methodByteRTCAudioFrameCallbackMethod音频回调方法,参看 ByteRTCAudioFrameCallbackMethod。

注意
该方法需要在调用 enableAudioFrameCallback:format: 之后调用。

registerAudioFrameObserver:
- (void)registerAudioFrameObserver:(_Nullable id<ByteRTCAudioFrameObserver>) audioFrameObserver;
objectivec

注册音频数据回调观察者。

传入参数

参数名类型说明
audioFrameObserverid音频数据观察者,参看 ByteRTCAudioFrameObserver。如果传入 null,则取消注册。

注意
注册音频数据回调观察者并调用 enableAudioFrameCallback:format: 后,ByteRTCAudioFrameObserver 会收到对应的音频回调。对回调中收到的音频数据进行处理,不会影响 RTC 的编码发送或渲染。

registerLocalAudioProcessor:format:
- (void)registerLocalAudioProcessor:(_Nullable id<ByteRTCAudioProcessor>) audioProcessor format:(ByteRTCAudioFormat* _Nullable)format __deprecated_msg("Will be removed in new version");
objectivec

Deprecated since 3.42 and will be deleted in 3.51, use registerAudioProcessor: instead.

设置自定义音频处理器。

使用该处理器,你可以调用 processAudioFrame: 对 RTC SDK 采集得到的音频帧进行自定义处理,并将处理后的音频帧用于 RTC 音视频通信。

SDK 只持有 processor 的弱引用,你应保证其生命周期。

传入参数

参数名类型说明
audioProcessorid自定义音频处理器,参看 ByteRTCAudioProcessor 。如果传入null,则不对 RTC SDK 采集得到的音频帧进行自定义处理。
formatByteRTCAudioFormat*自定义音频参数格式,参看 ByteRTCAudioFormat,SDK 将按指定设置给出音频帧。

返回值
方法调用结果

注意
重复调用此接口时,仅最后一次调用生效。效果不会叠加。

registerAudioProcessor:
- (void)registerAudioProcessor:(_Nullable id<ByteRTCAudioFrameProcessor>)processor;
objectivec

注册自定义音频处理器。

注册完成后,你可以调用 enableAudioProcessor:audioFormat:,对本地采集到的音频进行处理,RTC SDK 将对处理后的音频进行编码和发送。也可以对接收到的远端音频进行自定义处理,RTC SDK 将对处理后的音频进行渲染。

传入参数

参数名类型说明
processorid自定义音频处理器,详见 ByteRTCAudioFrameProcessor。
SDK 只持有 processor 的弱引用,你应保证其生命周期。

注意

enableAudioProcessor:audioFormat:
- (void)enableAudioProcessor:(ByteRTCAudioFrameMethod)method audioFormat:(ByteRTCAudioFormat *_Nullable)format;
objectivec

设置并开启指定的音频帧回调,进行自定义处理。

传入参数

参数名类型说明
methodByteRTCAudioFrameMethod音频帧类型,参看 ByteRTCAudioFrameMethod。可多次调用此接口,处理不同类型的音频帧。
选择不同类型的音频帧将收到对应的回调:
• 选择本地采集的音频时,会收到 onProcessRecordAudioFrame:。
• 选择远端音频流的混音音频时,会收到 onProcessPlayBackAudioFrame:。
• 选择远端音频流时,会收到 onProcessRemoteUserAudioFrame:audioFrame:。
• 选择软件耳返音频时,会收到 onProcessEarMonitorAudioFrame:。(仅适用于 iOS 平台)
• 选择屏幕共享音频流时,会收到 onProcessScreenAudioFrame:。
formatByteRTCAudioFormat*设定自定义处理时获取的音频帧格式,参看 ByteRTCAudioFormat。

注意

disableAudioProcessor:
- (void)disableAudioProcessor:(ByteRTCAudioFrameMethod)method;
objectivec

关闭自定义音频处理。

传入参数

参数名类型说明
methodByteRTCAudioFrameMethod音频帧类型,参看 ByteRTCAudioFrameMethod。

pushExternalAudioFrame:
- (int)pushExternalAudioFrame:(ByteRTCAudioFrame * _Nonnull) audioFrame;
objectivec

推送自定义采集的音频数据到 RTC SDK。

传入参数

参数名类型说明
audioFrameByteRTCAudioFrame*音频数据帧,详见 ByteRTCAudioFrame

返回值
方法调用结果

注意

pullExternalAudioFrame:
- (int)pullExternalAudioFrame:(ByteRTCAudioFrame * _Nonnull) audioFrame;
objectivec

拉取远端音频数据。

可用于自定义音频渲染。

传入参数

参数名类型说明
audioFrameByteRTCAudioFrame*音频数据帧,详见 ByteRTCAudioFrame

返回值
方法调用结果

注意

setBusinessId:
- (int)setBusinessId:(NSString* _Nullable)businessId;
objectivec

设置业务标识参数

可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。

传入参数

参数名类型说明
businessIdNSString*用户设置的自己的 businessId 值
businessId 只是一个标签,颗粒度需要用户自定义。

返回值

注意

feedback:info:
- (int)feedback:(ByteRTCProblemFeedbackOption)types info:(ByteRTCProblemFeedbackInfo* _Nullable)info;
objectivec

通话结束,将用户反馈的问题上报到 RTC

传入参数

参数名类型说明
typesByteRTCProblemFeedbackOption预设问题列表,参看 ByteRTCProblemFeedbackOption
infoByteRTCProblemFeedbackInfo*预设问题以外的其他问题的具体描述,房间信息。参看 ByteRTCProblemFeedbackInfo

返回值

注意
如果用户上报时在房间内,那么问题会定位到用户当前所在的一个或多个房间;如果用户上报时不在房间内,那么问题会定位到引擎此前退出的房间。

setPublishFallbackOption:
- (void)setPublishFallbackOption:(ByteRTCPublishFallbackOption)option;
objectivec

设置发布的音视频流的回退选项。

你可以调用该接口设置网络不佳或设备性能不足时从大流起进行降级处理,以保证通话质量。

传入参数

参数名类型说明
optionByteRTCPublishFallbackOption本地发布的音视频流回退选项,参看 ByteRTCPublishFallbackOption。

注意

setSubscribeFallbackOption:
- (void)setSubscribeFallbackOption:(ByteRTCSubscribeFallbackOption)option;
objectivec

设置订阅的音视频流的回退选项。

你可调用该接口设置网络不佳或设备性能不足时允许订阅流进行降级或只订阅音频流,以保证通话流畅。

传入参数

参数名类型说明
optionByteRTCSubscribeFallbackOption订阅的音视频流回退选项,参看 ByteRTCSubscribeFallbackOption。

注意

setRemoteUserPriority:InRoomId:uid:
- (int)setRemoteUserPriority:(ByteRTCRemoteUserPriority)priority InRoomId:(NSString *_Nonnull)roomId uid:(NSString *_Nonnull)uid;
objectivec

设置用户优先级。

传入参数

参数名类型说明
priorityByteRTCRemoteUserPriority远端用户的优先级, 详见枚举类型 ByteRTCRemoteUserPriority
roomIdNSString*房间 ID
uidNSString*远端用户的 ID

返回值

注意

setEncryptInfo:key:
- (void)setEncryptInfo:(ByteRTCEncryptType)encrypt_type key:(NSString * _Nonnull)key;
objectivec

设置传输时使用内置加密的方式。

传入参数

参数名类型说明
encrypt_typeByteRTCEncryptType内置加密算法,详见 ByteRTCEncryptType
keyNSString*加密密钥,长度限制为 36 位,超出部分将会被截断

注意

setCustomizeEncryptHandler:
- (void)setCustomizeEncryptHandler:(id<ByteRTCEncryptHandler> _Nullable)handler;
objectivec

设置自定义加密和解密方式。

传入参数

参数名类型说明
handlerid自定义加密 handler,需要实现里面的加密和解密方法。参看 ByteRTCEncryptHandler。

注意

createRTCRoom:
- ( ByteRTCRoom * _Nullable)createRTCRoom:(NSString * _Nonnull)roomId;
objectivec

创建房间实例。

调用此方法仅返回一个房间实例,你仍需调用 joinRoom:userInfo:roomConfig: 才能真正地创建/加入房间。

多次调用此方法以创建多个 ByteRTCRoom 实例。分别调用各 ByteRTCRoom 实例中的 joinRoom:userInfo:roomConfig: 方法,同时加入多个房间。

多房间模式下,用户可以同时订阅各房间的音视频流。

传入参数

参数名类型说明
roomIdNSString*标识通话房间的房间 ID。该字符串符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128}。

返回值
创建的 ByteRTCRoom 房间实例。

注意

pushScreenVideoFrame:time:rotation:
- (int)pushScreenVideoFrame:(CVPixelBufferRef _Nonnull )frame time:(CMTime)pts rotation:(int)rotation;
objectivec

推送外部屏幕采集帧

传入参数

参数名类型说明
frameCVPixelBufferRef该视频帧包含待 SDK 编码的视频数据
支持的视频像素格式:NV12、BGRA、ARGB
ptsCMTime每一帧的时间戳,单位 ms
rotationint帧的旋转角度包含: 0, 90, 180, 270

返回值
方法调用结果:

注意
屏幕采集分为内部采集和外部采集,本方法属于外部采集。

setExtensionConfig:
- (void)setExtensionConfig:(NSString *_Nullable)groupId;
objectivec

设置 Extension 配置项。你必须在使用屏幕内部采集功能前,设置使用的 Extension。

传入参数

参数名类型说明
groupIdNSString*你的应用和 Extension 应该归属于同一个 App Group,此处需要传入 Group Id。

注意
必须在调用 createRTCVideo:delegate:parameters: 之后立即调用此方法。在引擎实例的生命周期中,此方法只需要调用一次。

startScreenCapture:bundleId:
- (void)startScreenCapture:(ByteRTCScreenMediaType) type bundleId:(NSString *_Nullable)bundleId;
objectivec

使用 RTC SDK 内部采集模块开始采集屏幕音频流和(或)视频流。

传入参数

参数名类型说明
typeByteRTCScreenMediaType媒体类型,参看 ByteRTCScreenMediaType。
bundleIdNSString*绑定 Extension 的 Bundle ID,绑定后应用中共享屏幕的选择列表中只展示你的 Extension 可供选择。

注意

updateScreenCapture:
- (void)updateScreenCapture:(ByteRTCScreenMediaType) type;
objectivec

更新内部屏幕采集时采集的媒体类型。

传入参数

参数名类型说明
typeByteRTCScreenMediaType媒体类型,参看 ByteRTCScreenMediaType。

注意

stopScreenCapture
- (void)stopScreenCapture;
objectivec

在屏幕共享时,停止使用 RTC SDK 内部采集方式采集屏幕音视频。

注意

sendScreenCaptureExtensionMessage:
- (void)sendScreenCaptureExtensionMessage:(NSData *_Nonnull) messsage;
objectivec

向屏幕共享 Extension 发送自定义消息

传入参数

参数名类型说明
messsageNSData*发送给 Extension 的消息内容

注意

setRuntimeParameters:
- (void)setRuntimeParameters:(NSDictionary * _Nullable)parameters;
objectivec

设置运行时的参数

传入参数

参数名类型说明
parametersNSDictionary*保留参数

注意
该接口需在 joinRoom:userInfo:roomConfig: 和 startAudioCapture 之前调用。

startASR:handler:
- (void)startASR:(ByteRTCASRConfig *_Nonnull)asrConfig handler:(id<ByteRTCASREngineEventHandler> _Nonnull)handler ;
objectivec

开启自动语音识别服务。

该方法将识别后的用户语音转化成文字,并通过 onMessage: 事件回调给用户。

传入参数

参数名类型说明
handlerid语音识别服务使用状态回调,参看 ByteRTCASREngineEventHandler
asrConfigByteRTCASRConfig*校验信息,参看 ByteRTCASRConfig

stopASR
- (void)stopASR;
objectivec

关闭语音识别服务

startFileRecording:withRecordingConfig:type:
- (int)startFileRecording:(ByteRTCStreamIndex)streamIndex withRecordingConfig:(ByteRTCRecordingConfig* _Nonnull)recordingConfig type:(ByteRTCRecordingType)recordingType;
objectivec

该方法将通话过程中的音视频数据录制到本地的文件中。

传入参数

参数名类型说明
streamIndexByteRTCStreamIndex流属性,指定录制主流还是屏幕流,参看 ByteRTCStreamIndex
recordingConfigByteRTCRecordingConfig*本地录制参数配置,参看 ByteRTCRecordingConfig
recordingTypeByteRTCRecordingType*本地录制的媒体类型,参看 ByteRTCRecordingType

返回值

注意

stopFileRecording:
- (void)stopFileRecording:(ByteRTCStreamIndex)streamIndex;
objectivec

停止本地录制

传入参数

参数名类型说明
streamIndexByteRTCStreamIndex流属性,指定停止主流或者屏幕流录制,参看 ByteRTCStreamIndex

注意

startAudioRecording:
- (int)startAudioRecording:(ByteRTCAudioRecordingConfig* _Nonnull) recordingConfig;
objectivec

开启录制语音通话,生成本地文件。

在进房前后开启录制,如果未打开麦克风采集,录制任务正常进行,只是不会将数据写入生成的本地文件;只有调用 startAudioCapture 接口打开麦克风采集后,才会将录制数据写入本地文件。

传入参数

参数名类型说明
recordingConfigByteRTCAudioRecordingConfig*参看 ByteRTCAudioRecordingConfig

返回值

注意

stopAudioRecording
- (int)stopAudioRecording;
objectivec

停止音频文件录制

返回值

注意
调用 startAudioRecording: 开启本地录制。

getAudioMixingManager
- (ByteRTCAudioMixingManager *_Nullable)getAudioMixingManager;
objectivec

混音管理接口创建

返回值
混音管理实例,详见ByteRTCAudioMixingManager

login:uid:
- (int)login:(NSString * _Nonnull)token uid:(NSString * _Nonnull)uid;
objectivec

必须先登录,才能调用 sendUserMessageOutsideRoom:message:config: 和 sendServerMessage: 发送房间外点对点消息和向应用服务器发送消息

在调用本接口登录后,如果想要登出,需要调用 logout

传入参数

参数名类型说明
tokenNSString*用户登录必须携带的 Token,用于鉴权验证。
测试时可使用控制台生成临时 Token,roomId 填任意值。
正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token,roomId 置空,Token 有效期及生成方式参看使用 Token 完成鉴权。
uidNSString*用户 ID,在 appid的维度下是唯一的。

返回值

注意
本地用户调用此方法登录后,会收到 rtcEngine:onLoginResult:errorCode:elapsed: 回调通知登录结果,远端用户不会收到通知。

logout
- (void)logout;
objectivec

调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。

注意

updateLoginToken:
- (void)updateLoginToken:(NSString * _Nonnull)token;
objectivec

更新用户用于登录的 Token

Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。

调用 login:uid: 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 rtcEngine:onLoginResult:errorCode:elapsed: 回调通知,错误码为 ByteRTCLoginErrorCodeInvalidToken。此时需要重新获取 Token,并调用此方法更新 Token。

传入参数

参数名类型说明
tokenNSString*更新的动态密钥

注意

setServerParams:url:
- (void)setServerParams:(NSString * _Nonnull)signature url:(NSString * _Nonnull)url;
objectivec

设置应用服务器参数

客户端调用 sendServerMessage: 或 sendServerBinaryMessage: 发送消息给应用服务器之前,必须需要设置有效签名和应用服务器地址。

传入参数

参数名类型说明
signatureNSString*动态签名
应用服务器会使用该签名对请求进行鉴权验证。
urlNSString*应用服务器的地址

注意

getPeerOnlineStatus:
- (void)getPeerOnlineStatus:(NSString * _Nonnull)peerUserId;
objectivec

查询对端用户或本端用户的登录状态

传入参数

参数名类型说明
peerUserIdNSString*需要查询的用户 ID

注意

sendUserMessageOutsideRoom:message:config:
- (NSInteger)sendUserMessageOutsideRoom:(NSString * _Nonnull)userId message:(NSString * _Nonnull)messageStr config:(ByteRTCMessageConfig)config;
objectivec

给房间外指定的用户发送文本消息(P2P)

传入参数

参数名类型说明
userIdNSString*消息接收用户的 ID
messageStrNSString*发送的文本消息内容
消息不超过 64 KB。
configByteRTCMessageConfig消息类型,参看 ByteRTCMessageConfig。

返回值

注意

sendUserBinaryMessageOutsideRoom:message:config:
- (NSInteger)sendUserBinaryMessageOutsideRoom:(NSString * _Nonnull)userId message:(NSData * _Nonnull)messageStr config:(ByteRTCMessageConfig)config;
objectivec

给房间外指定的用户发送二进制消息(P2P)

传入参数

参数名类型说明
userIdNSString*消息接收用户的 ID
messageStrNSData*发送的二进制消息内容
消息不超过 46KB。
configByteRTCMessageConfig消息类型,参看 ByteRTCMessageConfig。

返回值

注意

sendServerMessage:
- (NSInteger)sendServerMessage:(NSString * _Nonnull)messageStr;
objectivec

客户端给应用服务器发送文本消息(P2Server)

传入参数

参数名类型说明
messageStrNSString*发送的文本消息内容
消息不超过 64 KB。

返回值

注意

sendServerBinaryMessage:
- (NSInteger)sendServerBinaryMessage:(NSData * _Nonnull)messageStr;
objectivec

客户端给应用服务器发送二进制消息(P2Server)

传入参数

参数名类型说明
messageStrNSData*发送的二进制消息内容
消息不超过 46KB。

返回值

注意

- (ByteRTCNetworkDetectionStartReturn)startNetworkDetection:(bool)is_test_uplink uplinkBandwidth:(int)expected_uplink_bitrate downlink:(bool)is_test_downlink downlinkBandwidth:(int)expected_downlink_bitrate;
objectivec

开始通话前网络探测

传入参数

参数名类型说明
is_test_uplinkbool是否探测上行带宽
expected_uplink_bitrateint期望上行带宽,单位:kbps范围为 {0, [100-10000]},其中, 0 表示由 SDK 指定最高码率。
is_test_downlinkbool是否探测下行带宽
expected_downlink_bitrateint期望下行带宽,单位:kbps范围为 {0, [100-10000]},其中, 0 表示由 SDK 指定最高码率。

返回值
开启通话前网络探测结果,详见 ByteRTCNetworkDetectionStartReturn

注意

stopNetworkDetection
- (void)stopNetworkDetection;
objectivec

停止通话前网络探测

注意
调用本接口后,会收到一次 rtcEngine:onNetworkDetectionStopped: 通知探测停止。

setScreenAudioSourceType:
- (void)setScreenAudioSourceType:(ByteRTCAudioSourceType)sourceType;
objectivec

在屏幕共享时,设置屏幕音频的采集方式(内部采集/自定义采集)

传入参数

参数名类型说明
sourceTypeByteRTCAudioSourceType屏幕音频输入源类型, 参看 ByteRTCAudioSourceType。

注意

setScreenAudioStreamIndex:
- (void)setScreenAudioStreamIndex:(ByteRTCStreamIndex) index;
objectivec

在屏幕共享时,设置屏幕音频流和麦克风采集到的音频流的混流方式

传入参数

参数名类型说明
indexByteRTCStreamIndex混流方式,参看 ByteRTCStreamIndex
• ByteRTCStreamIndexMain: 将屏幕音频流和麦克风采集到的音频流混流
• ByteRTCStreamIndexScreen: 默认值,将屏幕音频流和麦克风采集到的音频流分为两路音频流

注意
你应该在 publishScreen: 之前,调用此方法。否则,你将收到 rtcEngine:onWarning: 的报错:ByteRTCWarningSetScreenAudioStreamIndexFailed

pushScreenAudioFrame:
- (int) pushScreenAudioFrame:(ByteRTCAudioFrame* _Nonnull)audioFrame;
objectivec

使用自定义采集方式,采集屏幕共享时的屏幕音频时,将音频帧推送至 RTC SDK 处进行编码等处理。

传入参数

参数名类型说明
audioFrameByteRTCAudioFrame*音频数据帧,参见 ByteRTCAudioFrame

返回值
方法调用结果

注意

setVideoSourceType:WithStreamIndex:
- (void)setVideoSourceType:(ByteRTCVideoSourceType)type WithStreamIndex:(ByteRTCStreamIndex)streamIndex;
objectivec

设置向 SDK 输入的视频源,包括屏幕流
默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。

传入参数

参数名类型说明
typeByteRTCVideoSourceType视频输入源类型,参看 ByteRTCVideoSourceType
streamIndexByteRTCStreamIndex视频流的属性,参看 ByteRTCStreamIndex

注意

setExternalVideoEncoderEventHandler:
- (void)setExternalVideoEncoderEventHandler:(id<ByteRTCExternalVideoEncoderEventHandler> _Nullable)handler;
objectivec

注册自定义编码帧推送事件回调

传入参数

参数名类型说明
handlerid自定义编码帧回调类,参看 ByteRTCExternalVideoEncoderEventHandler

注意

pushExternalEncodedVideoFrame:withVideoIndex:withEncodedVideoFrame:
- (int)pushExternalEncodedVideoFrame:(ByteRTCStreamIndex)streamIndex withVideoIndex:(NSInteger)videoIndex withEncodedVideoFrame:(ByteRTCEncodedVideoFrame* _Nonnull)videoFrame;
objectivec

推送自定义编码后的视频流

传入参数

参数名类型说明
streamIndexByteRTCStreamIndex需要推送的编码流的属性,参看 ByteRTCStreamIndex
videoIndexNSInteger对应的编码流下标,从 0 开始,如果调用 setVideoEncoderConfig: 设置了多路流,此处数量须与之保持一致
videoFrameByteRTCEncodedVideoFrame*编码流视频帧信息,参看 ByteRTCEncodedVideoFrame。

返回值
方法调用结果:

注意

setVideoDecoderConfig:withVideoDecoderConfig:
- (void)setVideoDecoderConfig:(ByteRTCRemoteStreamKey * _Nonnull)key withVideoDecoderConfig:(ByteRTCVideoDecoderConfig)config;
objectivec

在订阅远端视频流之前,设置远端视频数据解码方式

传入参数

参数名类型说明
keyByteRTCRemoteStreamKey*远端流信息,指定对哪一路视频流进行解码方式设置,参看 ByteRTCRemoteStreamKey。
configByteRTCVideoDecoderConfig视频解码方式,参看 ByteRTCVideoDecoderConfig。

注意

requestRemoteVideoKeyFrame:
- (void)requestRemoteVideoKeyFrame:(ByteRTCRemoteStreamKey * _Nonnull)key;
objectivec

在订阅远端视频流之后,向远端请求关键帧

传入参数

参数名类型说明
keyByteRTCRemoteStreamKey*远端流信息,参看 ByteRTCRemoteStreamKey。

注意

registerRemoteEncodedVideoFrameObserver:
- (void)registerRemoteEncodedVideoFrameObserver:(id<ByteRTCRemoteEncodedVideoFrameObserver> _Nullable)observer;
objectivec

注册远端编码后视频数据回調。

完成注册后,当 SDK 监测到远端编码后视频帧时,会触发 onRemoteEncodedVideoFrame:withEncodedVideoFrame: 回调

传入参数

参数名类型说明
observerid远端编码后视频数据监测器,参看 ByteRTCRemoteEncodedVideoFrameObserver

注意

sendStreamSyncInfo:config:
- (int)sendStreamSyncInfo:(NSData* _Nonnull)data config:(ByteRTCStreamSycnInfoConfig * _Nonnull)config;
objectivec

发送音频流同步信息。将消息通过音频流发送到远端,并实现与音频流同步,该接口调用成功后,远端用户会收到 rtcEngine:onStreamSyncInfoReceived:streamType:data: 回调。

传入参数

参数名类型说明
dataNSData*消息内容。
configByteRTCStreamSycnInfoConfig*媒体流信息同步的相关配置,详见 ByteRTCStreamSycnInfoConfig 。

返回值

注意

muteAudioPlayback:
- (void)muteAudioPlayback:(ByteRTCMuteState)muteState __deprecated_msg("Will be removed in new version");
objectivec

Deprecated since 3.45 and will be deleted in 3.51, use setPlaybackVolume: instead.

控制本地音频流播放状态:播放/不播放

传入参数

参数名类型说明
muteStateByteRTCMuteState播放状态,标识是否播放本地音频流,详见:ByteRTCMuteState

注意
本方法仅控制本地收到音频流的播放状态,并不影响本地音频播放设备。

startEchoTest:playDelay:
- (int)startEchoTest:(ByteRTCEchoTestConfig *_Nullable)echoConfig playDelay:(NSInteger)delayTime;
objectivec

开启音视频回路测试。

在进房前,用户可调用该接口对音视频通话全链路进行检测,包括对音视频设备以及用户上下行网络的检测,从而帮助用户判断是否可以正常发布和接收音视频流。

开始检测后,SDK 会录制你声音或视频。如果你在设置的延时范围内收到了回放,则视为音视频回路测试正常。

传入参数

参数名类型说明
echoConfigByteRTCEchoTestConfig*回路测试参数设置,参看 ByteRTCEchoTestConfig。
delayTimeNSInteger音视频延迟播放的时间间隔,用于指定在开始检测多长时间后期望收到回放。取值范围为 [2,10],单位为秒,默认为 2 秒。

返回值
方法调用结果:

注意

stopEchoTest
- (int)stopEchoTest;
objectivec

停止音视频回路测试。

调用 startEchoTest:playDelay: 开启音视频回路检测后,你必须调用该方法停止检测。

返回值
方法调用结果:

注意
音视频回路检测结束后,所有对系统设备及音视频流的控制均会恢复到开始检测前的状态。

setVideoWatermark:withImagePath:withRtcWatermarkConfig:
- (void)setVideoWatermark:(ByteRTCStreamIndex)streamIndex withImagePath:(NSString * _Nullable)imagePath withRtcWatermarkConfig:(ByteRTCVideoWatermarkConfig* _Nonnull)rtcWatermarkConfig;
objectivec

在指定视频流上添加水印。

传入参数

参数名类型说明
streamIndexByteRTCStreamIndex需要添加水印的视频流属性,参看 ByteRTCStreamIndex。
imagePathNSString*水印图片路径,仅支持本地文件绝对路径,长度限制为 512 字节。
水印图片为 PNG 或 JPG 格式。
rtcWatermarkConfigByteRTCVideoWatermarkConfig*水印参数,参看 ByteRTCVideoWatermarkConfig。

注意

clearVideoWatermark:
- (void)clearVideoWatermark:(ByteRTCStreamIndex)streamIndex;
objectivec

移除指定视频流的水印。

传入参数

参数名类型说明
streamIndexByteRTCStreamIndex需要移除水印的视频流属性,参看 ByteRTCStreamIndex

takeLocalSnapshot:callback:
- (NSInteger)takeLocalSnapshot:(ByteRTCStreamIndex)streamIndex callback:(id<ByteRTCVideoSnapshotCallbackDelegate> _Nullable)callback;
objectivec

截取本地视频画面

传入参数

参数名类型说明
streamIndexByteRTCStreamIndex截图的视频流的属性,参看 ByteRTCStreamIndex。
callbackid本地截图的回调。参看 ByteRTCVideoSnapshotCallbackDelegate。

返回值
本地截图任务的编号,从 1 开始递增。

注意

takeRemoteSnapshot:callback:
- (NSInteger)takeRemoteSnapshot:(ByteRTCRemoteStreamKey* _Nonnull)streamKey callback:(id<ByteRTCVideoSnapshotCallbackDelegate> _Nullable)callback;
objectivec

截取远端视频画面

传入参数

参数名类型说明
streamKeyByteRTCRemoteStreamKey*截图的视频流,参看 ByteRTCRemoteStreamKey。
callbackid参看 ByteRTCVideoSnapshotCallbackDelegate。

返回值
远端截图任务的编号,从 1 开始递增。

startCloudProxy:
- (void)startCloudProxy:(NSArray <ByteRTCCloudProxyInfo *> * _Nullable)cloudProxiesInfo;
objectivec

开启云代理

传入参数

参数名类型说明
cloudProxiesInfoNSArray <ByteRTCCloudProxyInfo>**云代理服务器信息列表。参看 ByteRTCCloudProxyInfo。

注意

stopCloudProxy
- (void)stopCloudProxy;
objectivec

关闭云代理

注意
要开启云代理,调用 startCloudProxy:

getSingScoringManager
- (ByteRTCSingScoringManager *_Nullable)getSingScoringManager;
objectivec

创建 K 歌评分管理接口。

返回值
K 歌评分管理接口,详见 ByteRTCSingScoringManager。

setDummyCaptureImagePath:
- (int)setDummyCaptureImagePath:(NSString * _Nonnull)filePath;
objectivec

摄像头处于关闭状态时,使用静态图片填充本地推送的视频流。
调用 stopVideoCapture 接口时,会开始推静态图片。若要停止发送图片,可传入空字符串或启用内部摄像头采集。
可重复调用该接口来更新图片。

传入参数

参数名类型说明
filePathNSString*设置静态图片的路径。
支持本地文件绝对路径,不支持网络链接,长度限制为 512 字节。
静态图片支持类型为 JPEG/JPG、PNG、BMP。
若图片宽高比与设置的编码宽高比不一致,图片会被等比缩放,黑边填充空白区域。推流帧率与码率与设置的编码参数一致。

返回值

注意

getNetworkTimeInfo
- (ByteRTCNetworkTimeInfo *_Nonnull)getNetworkTimeInfo;
objectivec

通过 NTP 协议,获取网络时间。

返回值
网络时间。参看 ByteRTCNetworkTimeInfo。

注意

setAudioAlignmentProperty:withMode:
- (void)setAudioAlignmentProperty:(ByteRTCRemoteStreamKey * _Nonnull)streamKey withMode:(ByteRTCAudioAlignmentMode)mode;
objectivec

在听众端,设置订阅的所有远端音频流精准对齐后播放。

传入参数

参数名类型说明
streamKeyByteRTCRemoteStreamKey*作为对齐基准的远端音频流。参看 ByteRTCRemoteStreamKey。
一般选择主唱的音频流。
你必须在收到 rtcRoom:onUserPublishStream:type:,确认此音频流已发布后,调用此 API。
modeByteRTCAudioAlignmentMode是否对齐,默认不对齐。参看 ByteRTCAudioAlignmentMode。

注意

getKTVManager
- (ByteRTCKTVManager * _Nullable)getKTVManager;
objectivec

创建 KTV 管理接口。

返回值
KTV 管理接口,参看 ByteRTCKTVManager。

startHardwareEchoDetection:
- (int)startHardwareEchoDetection:(NSString * _Nonnull)testAudioFilePath;
objectivec

stopHardwareEchoDetection
- (int)stopHardwareEchoDetection;
objectivec

停止通话前回声检测

返回值
方法调用结果:

注意

setCellularEnhancement:
- (void)setCellularEnhancement:(ByteRTCMediaTypeEnhancementConfig * _Nonnull)config;
objectivec

启用蜂窝网络辅助增强,改善通话质量。

传入参数

参数名类型说明
configByteRTCMediaTypeEnhancementConfig*参看 ByteRTCMediaTypeEnhancementConfig。

注意
此功能默认不开启。

setLocalProxy:
- (int)setLocalProxy:(NSArray <ByteRTCLocalProxyInfo *> * _Nonnull)configurations;
objectivec

设置本地代理。

传入参数

参数名类型说明
configurationsNSArray <ByteRTCLocalProxyInfo>**本地代理配置参数。参看 ByteRTCLocalProxyInfo。
你可以根据自己的需要选择同时设置 Http 隧道 和 Socks5 两类代理,或者单独设置其中一类代理。如果你同时设置了 Http 隧道 和 Socks5 两类代理,此时,媒体和信令采用 Socks5 代理, Http 请求采用 Http 隧道代理;如果只设置 Http 隧道 或 Socks5 一类代理,媒体、信令和 Http 请求均采用已设置的代理。
调用此接口设置本地代理后,若想清空当前已有的代理设置,可再次调用此接口,选择不设置任何代理即可清空。

注意

ByteRTCAudioMixingManager
@interface ByteRTCAudioMixingManager :NSObject
objectivec
成员函数
返回名称
voidstartAudioMixing:filePath:config:
voidstopAudioMixing:
voidstopAllAudioMixing
voidpauseAudioMixing:
voidpauseAllAudioMixing
voidresumeAudioMixing:
voidresumeAllAudioMixing
voidpreloadAudioMixing:filePath:
voidunloadAudioMixing:
voidsetAllAudioMixingVolume:type:
voidsetAudioMixingVolume:volume:type:
intgetAudioMixingDuration:
intgetAudioMixingCurrentPosition:
voidsetAudioMixingPosition:position:
voidsetAudioMixingDualMonoMode:mode:
voidsetAudioMixingPitch:pitch:
intsetAudioMixingPlaybackSpeed:speed:
voidsetAudioMixingLoudness:loudness:
voidsetAudioMixingProgressInterval:interval:
voidenableAudioMixingFrame:type:
voiddisableAudioMixingFrame:
intpushAudioMixingFrame:audioFrame:
intgetAudioTrackCount:
voidselectAudioTrack:audioTrackIndex:
voidregisterAudioFileFrameObserver:
intgetAudioMixingPlaybackDuration:
函数说明

startAudioMixing:filePath:config:
-(void)startAudioMixing:(int)mixId filePath:(NSString * _Nullable)filePath config:(ByteRTCAudioMixingConfig * _Nullable)config;
objectivec

开始播放音频文件。
可以通过传入不同的 mixId 和 filepath 多次调用本方法,以实现同时播放多个混音文件,实现混音叠加。

传入参数

参数名类型说明
mixIdint混音 ID。用于标识混音,请保证混音 ID 唯一性。
如果使用相同的 ID 重复调用本方法后,前一次混音会停止,后一次混音开始,SDK 会使用 onAudioMixingStateChanged 回调通知前一次混音已停止。
filePathNSString*用于混音文件路径。
支持在线文件的 URL 和本地文件的绝对路径。对于在线文件的 URL,仅支持 https 协议。
推荐的音频文件采样率:8KHz、16KHz、22.05KHz、44.1KHz、48KHz。
不同平台支持的本地音频文件格式:






mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYYYY
iOS/macOSYYYYYY
WindowsYYYYYYYY
LinuxY

不同平台支持的在线音频文件格式:





mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYY
iOS/macOSYYYY
WindowsYYYYYYY
configByteRTCAudioMixingConfig*混音配置
可以设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端,详见 ByteRTCAudioMixingConfig

注意

stopAudioMixing:
-(void)stopAudioMixing:(int)mixId;
objectivec

停止播放音频文件及混音。

传入参数

参数名类型说明
mixIdint混音 ID

注意

stopAllAudioMixing
-(void)stopAllAudioMixing;
objectivec

停止播放所有音频文件及混音。

注意

pauseAudioMixing:
-(void)pauseAudioMixing:(int)mixId;
objectivec

暂停播放音频文件及混音。

传入参数

参数名类型说明
mixIdint混音 ID

注意

pauseAllAudioMixing
-(void)pauseAllAudioMixing;
objectivec

暂停播放所有音频文件及混音。

注意

resumeAudioMixing:
-(void)resumeAudioMixing:(int)mixId;
objectivec

恢复播放音频文件及混音。

传入参数

参数名类型说明
mixIdint混音 ID

注意

resumeAllAudioMixing
-(void)resumeAllAudioMixing;
objectivec

恢复播放所有音频文件及混音。

注意

preloadAudioMixing:filePath:
-(void)preloadAudioMixing:(int)mixId filePath:(NSString * _Nullable)filePath;
objectivec

预加载指定音乐文件到内存中,以避免频繁播放同一文件时的重复加载,减少 CPU 占用。

传入参数

参数名类型说明
mixIdint混音 ID。用于标识混音,请保证混音 ID 唯一性。
如果使用相同的 ID 重复调用本方法,后一次会覆盖前一次。
如果先调用 startAudioMixing:filePath:config:,再使用相同的 ID 调用本方法 ,会先回调 onAudioMixingStateChanged 通知上一个混音停止,然后加载后一个混音。
调用本方法预加载 A.mp3 后,如果需要使用相同的 ID 调用 startAudioMixing:filePath:config: 播放 B.mp3,请先调用 unloadAudioMixing: 卸载 A.mp3。
filePathNSString*混音文件路径。仅支持本地文件的绝对路径。预加载的文件长度不得超过 20s。
不同平台支持的音频文件格式:





mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYYYY
iOSYYYYYY
WindowsYYYYYYYY

注意

unloadAudioMixing:
-(void)unloadAudioMixing:(int)mixId;
objectivec

卸载指定音乐文件。

传入参数

参数名类型说明
mixIdint混音 ID

注意
不论音频文件是否播放,调用本方法卸载该文件后,SDK 会回调通知混音已停止,见 onAudioMixingStateChanged。

setAllAudioMixingVolume:type:
-(void)setAllAudioMixingVolume:(int)volume type:(ByteRTCAudioMixingType)type;
objectivec

设置默认的混音音量大小,包括音频文件混音和 PCM 混音。

传入参数

参数名类型说明
volumeint混音音量相对原音量的比值。范围为 [0, 400],建议范围是 [0, 100]。
• 0:静音
• 100:原始音量(默认值)
• 400: 最大可调音量 (自带溢出保护)
typeByteRTCAudioMixingType混音类型。是否本地播放、以及是否发送到远端,详见 ByteRTCAudioMixingType。

注意
该接口的优先级低于 setAudioMixingVolume:volume:type:,即通过 setAudioMixingVolume:volume:type: 单独设置了音量的混音 ID,不受该接口设置的影响。

setAudioMixingVolume:volume:type:
-(void)setAudioMixingVolume:(int)mixId volume:(int)volume type:(ByteRTCAudioMixingType)type;
objectivec

调节指定混音的音量大小,包括音频文件混音和 PCM 混音。

传入参数

参数名类型说明
mixIdint需调节音量的混音 ID
volumeint混音音量相对原音量的比值。范围为 [0, 400],建议范围是 [0, 100]。
• 0:静音
• 100:原始音量(默认值)
• 400: 最大可调音量 (自带溢出保护)
typeByteRTCAudioMixingType混音类型。是否本地播放、以及是否发送到远端,详见 ByteRTCAudioMixingType。

注意
该方法仅对指定混音 ID 生效。iOS 端提供 setAllAudioMixingVolume:type: 接口调节全部混音文件播放音量。

getAudioMixingDuration:
-(int)getAudioMixingDuration:(int)mixId;
objectivec

获取音频文件时长。

传入参数

参数名类型说明
mixIdint混音 ID

返回值

注意
调用本方法获取音频文件时长前,需要先调用 preloadAudioMixing:filePath: 或 startAudioMixing:filePath:config:。

getAudioMixingCurrentPosition:
-(int)getAudioMixingCurrentPosition:(int)mixId;
objectivec

获取音频文件播放进度。

传入参数

参数名类型说明
mixIdint混音 ID

返回值

注意
调用本方法获取音频文件播放进度前,需要先调用 startAudioMixing:filePath:config: 开始播放音频文件。

setAudioMixingPosition:position:
-(void)setAudioMixingPosition:(int)mixId position:(int)position;
objectivec

设置音频文件的起始播放位置

传入参数

参数名类型说明
mixIdint混音 ID
positionint音频文件起始播放位置,单位为毫秒。
你可以通过 getAudioMixingDuration: 获取音频文件总时长,position 的值不得大于音频文件总时长。

注意
在播放在线文件时,调用此接口可能造成播放延迟的现象。

setAudioMixingDualMonoMode:mode:
-(void) setAudioMixingDualMonoMode:(int)mixId mode:(ByteRTCAudioMixingDualMonoMode)mode;
objectivec

设置当前音频文件的声道模式

传入参数

参数名类型说明
mixIdint混音 ID
modeByteRTCAudioMixingDualMonoMode声道模式。默认的声道模式和源文件一致,详见 ByteRTCAudioMixingDualMonoMode。

注意

setAudioMixingPitch:pitch:
-(void)setAudioMixingPitch:(int)mixId pitch:(int)pitch;
objectivec

开启本地播放音乐文件变调功能,多用于 K 歌场景。

使用该方法,你可以对本地播放音乐文件的音调进行升调或降调等调整。

传入参数

参数名类型说明
mixIdint混音 ID
pitchint相对于音乐文件原始音调的升高/降低值,取值范围[-12,12],默认值为 0,即不做调整。
取值范围内每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调,设置的绝对值越大表示音调升高或降低越多。
超出取值范围则设置失败,并且会触发 onAudioMixingStateChanged 回调,提示 ByteRTCAudioMixingState 状态为 AUDIO_MIXING_STATE_FAILED 混音播放失败,ByteRTCAudioMixingError 错误码为 AUDIO_MIXING_ERROR_ID_TYPE_INVALID_PITCH 设置混音文件音调不合法。

注意
本方法需要在调用 startAudioMixing:filePath:config: 开始播放音频文件后、调用 stopAudioMixing: 停止播放音频文件前使用,否则会触发 onAudioMixingStateChanged 回调报错

setAudioMixingPlaybackSpeed:speed:
- (int)setAudioMixingPlaybackSpeed:(int)mixId speed:(int)speed;
objectivec

设置混音时音频文件的播放速度

传入参数

参数名类型说明
mixIdint混音 ID
speedint播放速度与原始文件速度的比例,单位:%,取值范围为 [50,200],默认值为 100。
超出取值范围则设置失败,你会收到 onAudioMixingStateChanged 回调,提示 ByteRTCAudioMixingState 状态为 ByteRTCAudioMixingStateFailed 混音播放失败,ByteRTCAudioMixingError 错误码为 ByteRTCAudioMixingErrorInValidPlaybackSpeed 设置混音文件的播放速度不合法。

注意

setAudioMixingLoudness:loudness:
-(void)setAudioMixingLoudness:(int)mixId loudness:(float)loudness;
objectivec

如果你需要使用 enableVocalInstrumentBalance: 对混音音频文件/PCM 音频数据进行音量调整,你必须通过此接口传入其原始响度。

传入参数

参数名类型说明
mixIdint混音 ID
loudnessfloat原始响度,单位:lufs,取值范围为 [-70.0, 0.0]。
当设置的值小于 -70.0lufs 时,则默认调整为 -70.0lufs,大于 0.0lufs 时,则不对该响度做音均衡处理。默认值为 1.0lufs,即不做处理。

注意
建议在 startAudioMixing:filePath:config: 开始播放音频文件之前调用该接口,以免播放过程中的音量突变导致听感体验下降。

setAudioMixingProgressInterval:interval:
-(void) setAudioMixingProgressInterval:(int)mixId interval:(int64_t) interval;
objectivec

设置混音时音频文件播放进度回调的间隔

传入参数

参数名类型说明
mixIdint混音 ID
可以通过多次调用本接口传入不同的 ID 对多个 ID 进行间隔设置。
intervalint64_t音频文件播放进度回调的时间间隔,单位毫秒。
• interval 的值为大于 0 的 10 的倍数,当设置的值不能被 10 整除时,则默认向上取整 10,如设为 52ms 时会默认调整为 60ms。设置完成后 SDK 将会按照设置的时间间隔触发 onAudioMixingPlayingProgress 回调。
• interval 的值小于等于 0 时,不会触发进度回调。

注意
本方法需要在调用 startAudioMixing:filePath:config: 开始播放音频文件后、调用 stopAudioMixing: 停止播放音频文件前使用,否则会触发 onAudioMixingStateChanged 回调报错。 若想在音乐文件开始播放前设置播放进度回调间隔,你需调用 startAudioMixing:filePath:config: 在 ByteRTCAudioMixingConfig 中设置时间间隔,开始播放后可以通过此接口更新回调间隔。

enableAudioMixingFrame:type:
-(void)enableAudioMixingFrame:(int)mixId type:(ByteRTCAudioMixingType)type;
objectivec

启动 PCM 音频数据混音。

要实现多个 PCM 音频数据混音,多次调用本方法,并传入不同的 id。

传入参数

参数名类型说明
mixIdint混音 ID。用于标识混音,保证混音 ID 唯一性。
如果使用相同的 ID 重复调用本方法后,前一次混音会停止,后一次混音开始,会收到 onAudioMixingStateChanged 通知前一次混音已停止。
typeByteRTCAudioMixingType混音类型。是否本地播放、以及是否发送到远端,详见 ByteRTCAudioMixingType。

注意

disableAudioMixingFrame:
-(void)disableAudioMixingFrame:(int)mixId;
objectivec

关闭 PCM 混音

传入参数

参数名类型说明
mixIdint混音 ID。

pushAudioMixingFrame:audioFrame:
- (int)pushAudioMixingFrame:(int)mixId audioFrame:(ByteRTCAudioFrame* _Nullable)audioFrame;
objectivec

推送 PCM 音频帧数据用于混音

传入参数

参数名类型说明
mixIdint混音 ID。
audioFrameByteRTCAudioFrame*音频帧,详见 ByteRTCAudioFrame。

返回值

注意

getAudioTrackCount:
-(int)getAudioTrackCount:(int)mixId;
objectivec

获取当前音频文件的音轨索引。

传入参数

参数名类型说明
mixIdint混音 ID

返回值
方法调用结果

注意

selectAudioTrack:audioTrackIndex:
-(void)selectAudioTrack:(int)mixId audioTrackIndex:(int)audioTrackIndex;
objectivec

指定当前音频文件的播放音轨。

传入参数

参数名类型说明
mixIdint混音 ID
audioTrackIndexint指定的播放音轨。
设置的参数值需要小于或等于 getAudioTrackCount: 的返回值

注意

registerAudioFileFrameObserver:
- (void)registerAudioFileFrameObserver:(_Nullable id<ByteRTCAudioFileFrameObserver>) observer;
objectivec

注册本地音频文件混音的音频帧观察者。
当本地音频文件混音时,会收到相关回调。

传入参数

参数名类型说明
observerid参看 ByteRTCAudioFileFrameObserver。

getAudioMixingPlaybackDuration:
-(int)getAudioMixingPlaybackDuration:(int)mixId;
objectivec

获取混音音频文件的实际播放时长(单位:毫秒)。

传入参数

参数名类型说明
mixIdint混音ID。

返回值

注意

ByteRTCKTVManager
@interface ByteRTCKTVManager : NSObject
objectivec

KTV 管理接口。

成员变量
类型名称
iddelegate
成员函数
返回名称
voidgetMusicList:pageSize:filterType:
voidsearchMusic:pageNumber:pageSize:filterType:
voidgetHotMusic:filterType:
voidgetMusicDetail:
intdownloadMusic:
intdownloadLyric:lyricType:
intdownloadMidi:
voidcancelDownload:
voidclearCache
voidsetMaxCacheSize:
ByteRTCKTVPlayer*getKTVPlayer
变量说明

delegate
@property(nonatomic, weak) id<ByteRTCKTVManagerDelegate> delegate;
objectivec
函数说明

getMusicList:pageSize:filterType:
- (void)getMusicList:(int)pageNumber pageSize:(int)pageSize filterType:(ByteRTCKTVMusicFilterType)filterType;
objectivec

获取歌曲列表。

传入参数

参数名类型说明
pageNumberint页码,默认从 1 开始。
pageSizeint每页显示歌曲的最大数量,取值范围 [1,99]。
filterTypeByteRTCKTVMusicFilterType歌曲过滤方式,参看 ByteRTCKTVMusicFilterType。多个过滤方式可以按位或组合。

注意
调用接口后,你会收到 ktvManager:onMusicListResult:totalSize:errorCode: 回调歌曲列表。

searchMusic:pageNumber:pageSize:filterType:
- (void)searchMusic:(NSString * _Nonnull)keyWord pageNumber:(int)pageNumber pageSize:(int)pageSize filterType:(ByteRTCKTVMusicFilterType)filterType;
objectivec

根据关键词搜索歌曲。

传入参数

参数名类型说明
keyWordNSString*关键词,字符串长度最大为 20 个字符。
pageNumberint页码,默认从 1 开始。
pageSizeint每页显示歌曲的最大数量,取值范围 [1,99]。
filterTypeByteRTCKTVMusicFilterType歌曲过滤方式,参看 ByteRTCKTVMusicFilterType。多个过滤方式可以按位或组合。

注意
调用接口后,你会收到 ktvManager:onSearchMusicResult:totalSize:errorCode: 回调歌曲列表。

getHotMusic:filterType:
- (void)getHotMusic:(ByteRTCKTVMusicHotType)hotType filterType:(ByteRTCKTVMusicFilterType)filterType;
objectivec

根据热榜获取每个榜单的歌曲列表。

传入参数

参数名类型说明
hotTypeByteRTCKTVMusicHotType热榜类别,参看 ByteRTCKTVMusicHotType。多个热榜类别可以按位或组合。
filterTypeByteRTCKTVMusicFilterType歌曲过滤方式,参看 ByteRTCKTVMusicFilterType。多个过滤方式可以按位或组合。

注意
调用接口后,你会收到 ktvManager:onHotMusicResult:errorCode: 回调歌曲列表。

getMusicDetail:
- (void)getMusicDetail:(NSString * _Nonnull)musicId;
objectivec

获取音乐详细信息。

传入参数

参数名类型说明
musicIdNSString*音乐 ID。

注意
调用接口后,你会收到 ktvManager:onMusicDetailResult:errorCode: 回调。

downloadMusic:
- (int)downloadMusic:(NSString * _Nonnull)musicId;
objectivec

下载音乐。

传入参数

参数名类型说明
musicIdNSString*音乐 ID。

返回值
下载任务 ID。

注意

downloadLyric:lyricType:
- (int)downloadLyric:(NSString * _Nonnull)musicId lyricType:(ByteRTCKTVDownloadLyricType)lyricType;
objectivec

下载歌词。

传入参数

参数名类型说明
musicIdNSString*音乐 ID。
lyricTypeByteRTCKTVDownloadLyricType歌词文件类型,参看 ByteRTCKTVDownloadLyricType。

返回值
下载任务 ID。

注意

downloadMidi:
- (int)downloadMidi:(NSString * _Nonnull)musicId;
objectivec

下载 MIDI 文件。

传入参数

参数名类型说明
musicIdNSString*音乐 ID。

返回值
下载任务 ID。

注意

cancelDownload:
- (void)cancelDownload:(int)downloadId;
objectivec

取消下载任务。

传入参数

参数名类型说明
downloadIdint下载任务 ID。

clearCache
- (void)clearCache;
objectivec

清除当前音乐缓存文件,包括音乐音频和歌词。

setMaxCacheSize:
- (void)setMaxCacheSize:(int)maxCacheSizeMB;
objectivec

设置歌曲文件最大占用的本地缓存。

传入参数

参数名类型说明
maxCacheSizeMBint本地缓存,单位 MB。
设置值小于等于 0 时,使用默认值 1024 MB。

getKTVPlayer
- (ByteRTCKTVPlayer * _Nullable)getKTVPlayer;
objectivec

获取 KTV 播放器。

返回值
KTV 播放器接口,参看 ByteRTCKTVPlayer。

ByteRTCKTVPlayer
@interface ByteRTCKTVPlayer : NSObject
objectivec

KTV 播放器接口。

成员变量
类型名称
iddelegate
成员函数
返回名称
voidplayMusic:audioTrackType:audioPlayType:
voidpauseMusic:
voidresumeMusic:
voidstopMusic:
voidseekMusic:position:
voidsetMusicVolume:volume:
voidswitchAudioTrackType:
voidsetMusicPitch:pitch:
变量说明

delegate
@property(nonatomic, weak) id<ByteRTCKTVPlayerDelegate> delegate;
objectivec
函数说明

playMusic:audioTrackType:audioPlayType:
- (void)playMusic:(NSString * _Nonnull)musicId audioTrackType:(ByteRTCKTVAudioTrackType)trackType audioPlayType:(ByteRTCKTVAudioPlayType)playType;
objectivec

播放歌曲。

传入参数

参数名类型说明
musicIdNSString*音乐 ID。
若同一 musicId 的歌曲正在播放,再次调用接口会从开始位置重新播放。若 musicId 对应的音频文件不存在会触发报错。
trackTypeByteRTCKTVAudioTrackType原唱伴唱类型,参看 ByteRTCKTVAudioTrackType。
playTypeByteRTCKTVAudioPlayType音乐播放类型。参看 ByteRTCKTVAudioPlayType。

注意

pauseMusic:
- (void)pauseMusic:(NSString * _Nonnull)musicId;
objectivec

暂停播放歌曲。

传入参数

参数名类型说明
musicIdNSString*音乐 ID。

注意

resumeMusic:
- (void)resumeMusic:(NSString * _Nonnull)musicId;
objectivec

继续播放歌曲。

传入参数

参数名类型说明
musicIdNSString*音乐 ID。

注意

stopMusic:
- (void)stopMusic:(NSString * _Nonnull)musicId;
objectivec

停止播放歌曲。

传入参数

参数名类型说明
musicIdNSString*音乐 ID。

注意

seekMusic:position:
- (void)seekMusic:(NSString * _Nonnull)musicId position:(int)position;
objectivec

设置音乐文件的起始播放位置。

传入参数

参数名类型说明
musicIdNSString*音乐 ID。
positionint音乐起始位置,单位为毫秒,取值小于音乐文件总时长。

注意

setMusicVolume:volume:
- (void)setMusicVolume:(NSString * _Nonnull)musicId volume:(int)volume;
objectivec

设置歌曲播放音量,只能在开始播放后进行设置。

传入参数

参数名类型说明
musicIdNSString*音乐 ID。
volumeint歌曲播放音量,调节范围:[0,400]。
• 0:静音。
• 100:原始音量。
• 400: 原始音量的 4 倍(自带溢出保护)。

注意

switchAudioTrackType:
- (void)switchAudioTrackType:(NSString * _Nonnull)musicId;
objectivec

切换歌曲原唱伴唱。

传入参数

参数名类型说明
musicIdNSString*音乐 ID。

注意
调用本接口时音乐必须处于播放中状态。

setMusicPitch:pitch:
- (void)setMusicPitch:(NSString * _Nonnull)musicId pitch:(int)pitch;
objectivec

对播放中的音乐设置升降调信息。

传入参数

参数名类型说明
musicIdNSString*音乐 ID。
pitchint相对于音乐文件原始音调的升高/降低值,取值范围 [-12,12],默认值为 0,即不做调整。
取值范围内每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调,设置的绝对值越大表示音调升高或降低越多。

注意

ByteRTCRangeAudio
@interface ByteRTCRangeAudio :NSObject
objectivec

范围语音接口实例

成员函数
返回名称
voidenableRangeAudio:
intupdateReceiveRange:
intupdatePosition:
intsetAttenuationModel:coefficient:
voidsetNoAttenuationFlags:
函数说明

enableRangeAudio:
- (void)enableRangeAudio:(BOOL)enable;
objectivec

开启/关闭范围语音功能。

范围语音是指,在同一 RTC 房间中设定的音频接收距离范围内,本地用户收听到的远端用户音频音量会随着远端用户的靠近/远离而放大/衰减;若远端用户在房间内的位置超出设定范围,则本地用户无法接收其音频。音频接收范围设置参看 updateReceiveRange:。

传入参数

参数名类型说明
enableBOOL是否开启范围语音功能:
• YES: 开启
• NO: 关闭(默认)

注意
该方法进房前后都可调用,为保证进房后范围语音效果的平滑切换,你需在该方法前先调用 updatePosition: 设置自身位置坐标,然后开启该方法收听范围语音效果。

updateReceiveRange:
- (int)updateReceiveRange:(ReceiveRange* _Nonnull) range;
objectivec

更新本地用户的音频收听范围。

传入参数

参数名类型说明
rangeReceiveRange*音频收听范围,参看 ReceiveRange。

返回值
方法调用结果:

updatePosition:
- (int)updatePosition:(Position* _Nonnull) pos;
objectivec

更新本地用户在房间内空间直角坐标系中的位置坐标。

传入参数

参数名类型说明
posPosition*三维坐标的值,默认为 [0, 0, 0],参看 Position。

返回值
方法调用结果:

注意
调用该接口更新坐标后,你需调用 enableRangeAudio: 开启范围语音功能以收听范围语音效果。

setAttenuationModel:coefficient:
- (int)setAttenuationModel:(AttenuationType) type coefficient:(float)coefficient;
objectivec

设置范围语音的音量衰减模式。

传入参数

参数名类型说明
typeAttenuationType音量衰减模式。默认为线性衰减。详见 AttenuationType。
coefficientfloat指数衰减模式下的音量衰减系数,默认值为 1。范围 [0.1,100],推荐设置为 50。数值越大,音量的衰减速度越快。

返回值
调用是否成功

注意
音量衰减范围通过 updateReceiveRange: 进行设置。

setNoAttenuationFlags:
- (void) setNoAttenuationFlags:(NSArray <NSString *> *_Nonnull)flags;
objectivec

添加标签组,用于标记相互之间通话不衰减的用户组。

在同一个 RTC 房间中,如果多个用户的标签组之间有交集,那么,他们之间互相通话时,通话不衰减。

比如,用户身处多个队伍,队伍成员间通话不衰减。那么,可以为每个队伍绑定专属标签,每个用户的标签组包含用户所属各个队伍的标签。

传入参数

参数名类型说明
flagsNSArray <NSString>**标签组。
ByteRTCSingScoringManager
@interface ByteRTCSingScoringManager :NSObject
objectivec

K 歌评分管理接口。

成员函数
返回名称
intinitSingScoring:singScoringToken:delegate:
intsetSingScoringConfig:
NSArray<ByteRTCStandardPitchInfo >**getStandardPitchInfo:
intstartSingScoring:scoringInfoInterval:
intstopSingScoring
intgetLastSentenceScore
intgetTotalScore
intgetAverageScore
函数说明

initSingScoring:singScoringToken:delegate:
-(int)initSingScoring:(NSString * _Nullable)singScoringAppkey singScoringToken:(NSString * _Nullable)singScoringToken delegate:(id<ByteRTCSingScoringDelegate> _Nullable)delegate;
objectivec

初始化 K 歌评分。

传入参数

参数名类型说明
singScoringAppkeyNSString*K 歌评分密钥,用于鉴权验证 K 歌功能是否开通。
singScoringTokenNSString*K 歌评分密钥,用于鉴权验证 K 歌功能是否开通。
delegateidK 歌评分事件回调类,详见 ByteRTCSingScoringDelegate。

返回值

注意
输入正确的鉴权信息才可以使用 K 歌评分相关的功能,鉴权方式为离线鉴权,根据包名(bundleID)绑定 Appkey 及 Token,K 歌评分密钥请联系技术支持人员申请。

setSingScoringConfig:
-(int)setSingScoringConfig:(ByteRTCSingScoringConfig * _Nullable)config;
objectivec

设置 K 歌评分参数。

传入参数

参数名类型说明
configByteRTCSingScoringConfig*K 歌评分的各项参数,详见 ByteRTCSingScoringConfig。

返回值

getStandardPitchInfo:
-(NSArray<ByteRTCStandardPitchInfo* > * _Nullable)getStandardPitchInfo:(NSString* _Nullable)midiFilepath;
objectivec

获取标准音高数据。

传入参数

参数名类型说明
midiFilepathNSString*歌曲 midi 文件路径。

返回值
ByteRTCStandardPitchInfo 标准音高数据数组。

注意

startSingScoring:scoringInfoInterval:
-(int)startSingScoring:(int)position scoringInfoInterval:(int)scoringInfoInterval;
objectivec

开始 K 歌评分。

传入参数

参数名类型说明
positionint开始评分时,音乐的播放进度,单位:ms。
scoringInfoIntervalint实时回调的时间间隔,单位:ms;默认 50 ms。最低间隔为 20 ms。

返回值

注意

stopSingScoring
-(int)stopSingScoring;
objectivec

停止 K 歌评分。

返回值

getLastSentenceScore
-(int)getLastSentenceScore;
objectivec

获取上一句的演唱评分。调用 startSingScoring:scoringInfoInterval: 开始评分后可以调用该接口。

返回值

getTotalScore
-(int)getTotalScore;
objectivec

获取当前演唱总分。调用 startSingScoring:scoringInfoInterval: 开始评分后可以调用该接口。

返回值

getAverageScore
-(int)getAverageScore;
objectivec

获取当前演唱歌曲的平均分。

返回值

ByteRTCSpatialAudio
@interface ByteRTCSpatialAudio :NSObject
objectivec

空间音频接口实例

成员函数
返回名称
voidenableSpatialAudio:
voiddisableRemoteOrientation
intupdateSelfPosition:
intupdateRemotePosition:positionInfo:
intremoveRemotePosition:
intremoveAllRemotePosition
int[deprecated] updatePosition:
int[deprecated] updateSelfOrientation:
int[deprecated] updateListenerPosition:
int[deprecated] updateListenerOrientation:
函数说明

enableSpatialAudio:
- (void)enableSpatialAudio:(BOOL)enable;
objectivec

开启/关闭空间音频功能。

传入参数

参数名类型说明
enableBOOL是否开启空间音频功能:
• YES:开启
• NO:关闭(默认)

注意
该方法仅开启空间音频功能,你须调用 updatePosition: 设置自身位置坐标后方可收听空间音频效果。空间音频相关 API 和调用时序详见空间音频。

updatePosition:
-(int)updatePosition:(Position* _Nonnull) pos;
objectivec

Deprecated since 3.52, will be deleted in 3.58, use updateSelfPosition: instead

更新本地用户发声时,在房间内空间直角坐标系中的位置坐标。

如果未调用 updateListenerPosition: 设定收听位置,默认的收听位置和发声位置一致。

传入参数

参数名类型说明
posPosition*三维坐标的值,默认为 [0, 0, 0]。参看 Position。

返回值

注意
调用该接口更新坐标前,你需调用 enableSpatialAudio: 开启空间音频功能。空间音频相关 API 和调用时序详见空间音频。

updateSelfOrientation:
-(int)updateSelfOrientation:(HumanOrientation* _Nonnull) orientation;
objectivec

Deprecated since 3.52, will be deleted in 3.58, use updateSelfPosition: instead

更新本地用户发声时,在空间音频坐标系下的朝向。

如果未调用 updateListenerOrientation: 设定收听朝向,默认的收听位朝向和发声朝向一致。

传入参数

参数名类型说明
orientationHumanOrientation*参看 HumanOrientation。

返回值
方法调用结果:

注意

disableRemoteOrientation
-(void)disableRemoteOrientation;
objectivec

关闭本地用户朝向对本地用户发声效果的影响。

调用此接口后,房间内的其他用户收听本地发声时,声源都在收听者正面。

注意

updateListenerPosition:
-(int)updateListenerPosition:(Position* _Nonnull) pos;
objectivec

Deprecated since 3.52, will be deleted in 3.58, use updateRemotePosition:positionInfo: instead

更新在房间内收听音频时的位置。

通过此接口,你可以设定本地发声位置和收听位置不同。

传入参数

参数名类型说明
posPosition*空间直角坐标系下的坐标值。参看 Position。
如果未调用此接口设定收听位置,那么默认值为通过 updatePosition: 设定的值。

返回值

注意

updateListenerOrientation:
-(int)updateListenerOrientation:(HumanOrientation* _Nonnull)orientation;
objectivec

Deprecated since 3.52, will be deleted in 3.58, use updateRemotePosition:positionInfo: instead

更新在房间内收听音频时的朝向。

通过此接口,你可以设定本地用户的发声朝向和收听朝向不同。

传入参数

参数名类型说明
orientationHumanOrientation*自身朝向信息,参看 HumanOrientation。
如果未调用此接口设定收听朝向,那么默认值为通过 updateSelfOrientation: 设定的值。

返回值
方法调用结果:

注意
空间音频相关 API 和调用时序详见空间音频。

updateSelfPosition:
-(int)updateSelfPosition:(ByteRTCPositionInfo* _Nonnull)positionInfo;
objectivec

Available since 3.52

设置本地用户在自建空间直角坐标系中的收听坐标和收听朝向,以实现本地用户预期的空间音频收听效果。

传入参数

参数名类型说明
positionInfoByteRTCPositionInfo*空间音频位置信息。参看 ByteRTCPositionInfo。

返回值

注意
该方法需在进房后调用。调用该接口更新坐标前,你需调用 enableSpatialAudio: 开启空间音频功能。空间音频相关 API 和调用时序详见空间音频。
调用此接口在本地进行的设定对其他用户的空间音频收听效果不会产生任何影响。

updateRemotePosition:positionInfo:
-(int)updateRemotePosition:(NSString * _Nonnull)uid positionInfo:(ByteRTCPositionInfo* _Nonnull)positionInfo;
objectivec

Available since 3.52

设置房间内某一远端用户在本地用户自建的空间音频坐标系中的发声位置和发声朝向,以实现本地用户预期的空间音频收听效果。

传入参数

参数名类型说明
uidNSString*用户 ID
positionInfoByteRTCPositionInfo*远端用户的空间音频位置信息。参看 ByteRTCPositionInfo。

返回值

注意
该方法需在创建房间后调用。
调用此接口在本地进行的设定对其他用户的空间音频收听效果不会产生任何影响。

removeRemotePosition:
-(int)removeRemotePosition:(NSString * _Nonnull)uid;
objectivec

Available since 3.52

移除调用 updateRemotePosition:positionInfo: 为某一远端用户设置的空间音频效果。

传入参数

参数名类型说明
uidNSString*远端用户 ID。

返回值

removeAllRemotePosition
-(int)removeAllRemotePosition;
objectivec

Available since 3.52

移除调用 updateRemotePosition:positionInfo: 为所有远端用户设置的空间音频效果。

返回值

ByteRTCVideoEffect
@interface ByteRTCVideoEffect : NSObject
objectivec

高级视频特效。

成员函数
返回名称
intinitCVResource:withAlgoModelDir:
intenableVideoEffect
intdisableVideoEffect
intsetEffectNodes:
intupdateEffectNode:key:value:
intsetColorFilter:
intsetColorFilterIntensity:
intenableVirtualBackground:withSource:
intdisableVirtualBackground
intenableFaceDetection:withInterval:withModelPath:
intdisableFaceDetection
int[deprecated] registerFaceDetectionObserver:withInterval:
函数说明

initCVResource:withAlgoModelDir:
- (int) initCVResource:(NSString* _Nonnull)license_file withAlgoModelDir: (NSString* _Nonnull)algo_model_dir;
objectivec

检查视频特效证书,设置算法模型路径,并初始化特效模块。

传入参数

参数名类型说明
license_fileNSString*证书文件的绝对路径,用于鉴权。
algo_model_dirNSString*算法模型绝对路径,即存放特效 SDK 所有算法模型的目录。

返回值

enableVideoEffect
- (int) enableVideoEffect;
objectivec

开启高级美颜、滤镜等视频特效。

返回值

注意

disableVideoEffect
- (int) disableVideoEffect;
objectivec

关闭视频特效。

返回值

注意
调用 enableVideoEffect 开启视频特效。

setEffectNodes:
- (int) setEffectNodes:(NSArray<NSString*>*_Nonnull)effect_nodes;
objectivec

设置视频特效素材包。

传入参数

参数名类型说明
effect_nodesNSArray<NSString>**特效素材包绝对路径数组。
要取消当前视频特效,将此参数设置为 null。

返回值

注意
调用本方法前,必须先调用 enableVideoEffect。

updateEffectNode:key:value:
- (int) updateEffectNode:(NSString* _Nonnull)node key:(NSString* _Nonnull)key value:(float) value;
objectivec

设置特效强度。

传入参数

参数名类型说明
nodeNSString*特效素材包绝对路径,参考素材包结构说明。
keyNSString*需要设置的素材 key 名称,参考素材 key 对应说明。
valuefloat特效强度值,取值范围 [0,1],超出范围时设置无效。

返回值

setColorFilter:
- (int) setColorFilter:(NSString* _Nonnull)filter_res;
objectivec

设置颜色滤镜。

传入参数

参数名类型说明
filter_resNSString*滤镜资源包绝对路径。

返回值

注意
调用 setColorFilterIntensity: 设置已启用颜色滤镜的强度。设置强度为 0 时即关闭颜色滤镜。

setColorFilterIntensity:
- (int) setColorFilterIntensity:(float) intensity;
objectivec

设置已启用颜色滤镜的强度。

传入参数

参数名类型说明
intensityfloat滤镜强度。取值范围 [0,1],超出范围时设置无效。
当设置滤镜强度为 0 时即关闭颜色滤镜。

返回值

enableVirtualBackground:withSource:
- (int) enableVirtualBackground:(NSString* _Nonnull)bg_sticker_path withSource:(ByteRTCVirtualBackgroundSource* _Nonnull)source;
objectivec

将摄像头采集画面中的人像背景替换为指定图片或纯色背景。

传入参数

参数名类型说明
bg_sticker_pathNSString*背景贴纸特效素材绝对路径。
sourceByteRTCVirtualBackgroundSource*背景贴纸对象,参看 ByteRTCVirtualBackgroundSource。

返回值

注意

disableVirtualBackground
- (int) disableVirtualBackground;
objectivec

关闭虚拟背景。

返回值

注意
调用 enableVirtualBackground:withSource: 开启虚拟背景后,可以调用此接口关闭虚拟背景。

registerFaceDetectionObserver:withInterval:
- (int) registerFaceDetectionObserver:(_Nullable id<ByteRTCFaceDetectionObserver>) observer withInterval:(NSInteger)interval __deprecated_msg("Will be removed in new version");
objectivec

Deprecated since 3.50 and will be deleted in 3.55, use enableFaceDetection:withInterval:withModelPath: and disableFaceDetection instead.

注册人脸检测结果回调观察者。
注册此观察者后,你会周期性收到 onFaceDetectResult: 回调。

传入参数

参数名类型说明
observerid人脸检测结果回调观察者,参看 ByteRTCFaceDetectionObserver。
intervalNSInteger时间间隔,必须大于 0。单位:ms。实际收到回调的时间间隔大于 interval,小于 interval+视频采集帧间隔。

返回值

enableFaceDetection:withInterval:withModelPath:
- (int) enableFaceDetection:(_Nullable id<ByteRTCFaceDetectionObserver>) observer withInterval:(NSUInteger)interval withModelPath:(NSString* _Nonnull)path;
objectivec

开启人脸识别功能,并设置人脸检测结果回调观察者。
此观察者后,你会周期性收到 onFaceDetectResult: 回调。

传入参数

参数名类型说明
observerid人脸检测结果回调观察者,参看 ByteRTCFaceDetectionObserver。
intervalNSUInteger两次回调之间的最小时间间隔,必须大于 0,单位为毫秒。实际收到回调的时间间隔大于 interval,小于 interval+视频采集帧间隔。
pathNSString*人脸检测算法模型文件路径,一般为 ttfacemodel 文件夹中 tt_face_vXXX.model 文件的绝对路径。

返回值

disableFaceDetection
- (int) disableFaceDetection;
objectivec

关闭人脸识别功能。

返回值