ByteRTCRoom

@interface ByteRTCRoom : NSObject

成员变量

类型 名称
id delegate

成员函数

返回 名称
void destroy
void setRtcRoomDelegate:
int joinRoomByToken:userInfo:roomConfig:
BOOL setUserVisibility:
BOOL setMultiDeviceAVSync:
int leaveRoom
int renewToken:
int setRemoteVideoConfig:remoteVideoConfig:
int publishStream:
int unpublishStream:
int publishScreen:
int unpublishScreen:
void subscribeStream:mediaStreamType:
void unSubscribeStream:mediaStreamType:
void subscribeScreen:mediaStreamType:
void unSubscribeScreen:mediaStreamType:
void pauseAllSubscribedStream:
void resumeAllSubscribedStream:
int64_t sendUserMessage:message:config:
int64_t sendUserBinaryMessage:message:config:
int64_t sendRoomMessage:
int64_t sendRoomBinaryMessage:
int startForwardStreamToRooms:
int updateForwardStreamToRooms:
void stopForwardStreamToRooms
void pauseForwardStreamToAllRooms
void resumeForwardStreamToAllRooms
ByteRTCRangeAudio* getRangeAudio
ByteRTCSpatialAudio* getSpatialAudio
int enableCloudRending:
int updateCloudRending:
int disableCloudRending

变量说明

delegate

@property(nonatomic, weak) id<ByteRTCRoomDelegate> _Nullable delegate;

函数说明

destroy

- (void)destroy;

销毁房间

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

setRtcRoomDelegate:

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

通过设置 RTCRoomDelegateByteRTCRoomDelegate 代理,可以监听此 ByteRTCRoom 对象对应的回调事件。

传入参数

参数名 类型 说明
roomDelegate id 参见 RTCRoomDelegateByteRTCRoomDelegate。

joinRoomByToken:userInfo:roomConfig:

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

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

传入参数

参数名 类型 说明
token NSString* 动态密钥,用于对进房用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
使用不同 AppID 的 App 是不能互通的。
请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。
userInfo ByteRTCUserInfo* 用户 ID。参看 ByteRTCUserInfo。
roomConfig ByteRTCRoomConfig* 房间参数配置,设置房间模式以及是否自动发布或订阅流。具体配置模式参看 ByteRTCRoomConfig。

返回值 方法调用结果。

注意

setUserVisibility:

- (BOOL)setUserVisibility:(BOOL)enable;

设置用户可见性。默认可见。

传入参数

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

返回值

注意

setMultiDeviceAVSync:

- (BOOL)setMultiDeviceAVSync:(NSString* _Nullable) audioUserId;

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

传入参数

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

返回值 方法调用结果:

注意

leaveRoom

- (int)leaveRoom;

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

返回值 方法调用结果。

注意

renewToken:

- (int)renewToken:(NSString *_Nullable)token;

更新 Token。
用户调用 joinRoomByToken:userInfo:roomConfig: 方法加入房间时, 如果使用了过期的 Token 将导致加入房间失败,并会收到 rtcRoom:onRoomStateChanged:withUid:state:extraInfo: 回调, 回调错误码为 ByteRTCErrorCode 中的 ByteRTCErrorCodeInvalidToken。 此时需要重新获取 Token,并调用此方法更新 Token。更新 Token 后,SDK 会自动加入房间。

传入参数

参数名 类型 说明
token NSString* 更新的动态密钥。

返回值 方法调用结果。

注意 Token 过期时,如果已经加入房间成功,则不会受到影响。Token 过期的错误会在下一次使用过期的 Token 加入房间时,或因本地网络状况不佳导致断网重新连入房间时通知用户。

setRemoteVideoConfig:remoteVideoConfig:

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

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

传入参数

参数名 类型 说明
userId NSString* 期望订阅的远端视频流发布用户的 ID。
remoteVideoConfig ByteRTCRemoteVideoConfig* 期望订阅的远端视频流参数,参看 ByteRTCRemoteVideoConfig。

注意

publishStream:

- (int)publishStream:(ByteRTCMediaStreamType)type;

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

传入参数

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

返回值 方法调用结果:

注意

unpublishStream:

- (int)unpublishStream:(ByteRTCMediaStreamType)type;

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

传入参数

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

返回值

注意

publishScreen:

- (int)publishScreen:(ByteRTCMediaStreamType)type;

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

传入参数

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

返回值

注意

unpublishScreen:

- (int)unpublishScreen:(ByteRTCMediaStreamType)type;

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

传入参数

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

返回值

注意

subscribeStream:mediaStreamType:

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

订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

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

注意

unSubscribeStream:mediaStreamType:

- (void)unSubscribeStream:(NSString *_Nonnull)userId mediaStreamType:(ByteRTCMediaStreamType)mediaStreamType;

取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

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

注意

subscribeScreen:mediaStreamType:

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

订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

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

注意

unSubscribeScreen:mediaStreamType:

- (void)unSubscribeScreen:(NSString *_Nonnull)userId mediaStreamType:(ByteRTCMediaStreamType)mediaStreamType;

取消订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

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

注意

pauseAllSubscribedStream:

- (void)pauseAllSubscribedStream:(ByteRTCPauseResumControlMediaType) mediaType;

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

传入参数

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

注意

resumeAllSubscribedStream:

- (void)resumeAllSubscribedStream:(ByteRTCPauseResumControlMediaType) mediaType;

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

传入参数

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

注意

sendUserMessage:message:config:

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

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

传入参数

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

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

注意

sendUserBinaryMessage:message:config:

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

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

传入参数

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

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

注意

sendRoomMessage:

- (int64_t)sendRoomMessage:(NSString *_Nonnull)message;

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

传入参数

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

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

注意

sendRoomBinaryMessage:

- (int64_t)sendRoomBinaryMessage:(NSData * _Nonnull)message;

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

传入参数

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

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

注意

startForwardStreamToRooms:

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

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

传入参数

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

返回值

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

注意

updateForwardStreamToRooms:

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

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

传入参数

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

返回值

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

注意

stopForwardStreamToRooms

- (void)stopForwardStreamToRooms;

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

注意

pauseForwardStreamToAllRooms

- (void)pauseForwardStreamToAllRooms;

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

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

resumeForwardStreamToAllRooms

- (void)resumeForwardStreamToAllRooms;

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

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

getRangeAudio

- (ByteRTCRangeAudio *_Nullable)getRangeAudio;

获取范围语音接口实例。

返回值 方法调用结果:

注意 首次调用该方法须在创建房间后、加入房间前。

getSpatialAudio

- (ByteRTCSpatialAudio *_Nullable)getSpatialAudio;

获取空间音频接口实例。

返回值 方法调用结果:

注意

enableCloudRending:

- (int)enableCloudRending:(NSString *_Nonnull)rendingInfo;

按照传入的布局信息开启云端渲染。

传入参数

参数名 类型 说明
rendingInfo NSString* 渲染功能相关参数。

返回值 方法调用结果。

updateCloudRending:

- (int)updateCloudRending:(NSString *_Nonnull)rendingInfo;

按照传入的布局信息更新云端渲染。

传入参数

参数名 类型 说明
rendingInfo NSString* 渲染功能相关参数。

返回值 方法调用结果。

disableCloudRending

- (int)disableCloudRending;

停止云端渲染。

返回值 方法调用结果。

ByteRTCVideo

@interface ByteRTCVideo : NSObject

SDK 回调给应用层的 delegate 对象,详见 ByteRTCVideoDelegate

成员变量

类型 名称
id delegate

静态函数

返回 名称
void destroyRTCVideo
NSString* getSdkVersion
NSString* getErrorDescription:

成员函数

返回 名称
ByteRTCVideo* createRTCVideo:delegate:parameters:
int setAudioSourceType:
int setAudioRenderType:
void startAudioCapture
void stopAudioCapture
void setAudioScenario:
void setAudioProfile:
void setVoiceChangerType:
void setVoiceReverbType:
void setCaptureVolume:volume:
void setPlaybackVolume:
void enableAudioPropertiesReport:
void setRemoteAudioPlaybackVolume:remoteUid:playVolume:
void setEarMonitorMode:
void setEarMonitorVolume:
void setLocalVoicePitch:
void enableVocalInstrumentBalance:
void enablePlaybackDucking:
void setLocalVideoSink:withSink:withPixelFormat:
void setRemoteVideoSink:withSink:withPixelFormat:
int enableSimulcastMode:
int SetMaxVideoEncoderConfig:
int SetVideoEncoderConfig:
int SetScreenVideoEncoderConfig:
int setVideoCaptureConfig:
int setLocalVideoCanvas:withCanvas:
int updateLocalVideoCanvas:withRenderMode:withBackgroundColor:
int setRemoteVideoCanvas:withIndex:withCanvas:
int updateRemoteVideoCanvas:withUserId:withIndex:withRenderMode:withBackgroundColor:
void startVideoCapture
void stopVideoCapture
int setLocalVideoMirrorType:
int setVideoRotationMode:
int switchCamera:
int checkVideoEffectLicense:
int enableVideoEffect:
void setVideoEffectAlgoModelPath:
int setVideoEffectNodes:
int updateVideoEffectNode:nodeKey:nodeValue:
int setVideoEffectColorFilter:
int setVideoEffectColorFilterIntensity:
int initVirtualBackground:withModel:
int enableVirtualBackground:
int disableVirtualBackground
int enableEffectBeauty:
int setBeautyIntensity:withIntensity:
int setCameraZoomRatio:
float getCameraZoomMaxRatio
bool isCameraZoomSupported
bool isCameraTorchSupported
int setCameraTorch:
bool isCameraFocusPositionSupported
int setCameraFocusPosition:
bool isCameraExposurePositionSupported
int setCameraExposurePosition:
int setCameraExposureCompensation:
int registerFaceDetectionObserver:withInterval:
int sendSEIMessage:andMessage:andRepeatCount:
int registerLocalVideoProcessor:withConfig:
void registerLocalEncodedVideoFrameObserver:
int setAudioRoute:
ByteRTCAudioRoute getAudioRoute
void enableExternalSoundCard:
int setDefaultAudioRoute:
int startLiveTranscoding:transcoding:observer:
int stopLiveTranscoding:
int updateLiveTranscoding:transcoding:
int startPushPublicStream:withLayout:
int stopPushPublicStream:
int updatePublicStreamParam:withLayout:
int startPlayPublicStream:
int stopPlayPublicStream:
int setPublicStreamVideoCanvas:withCanvas:
int setPublicStreamVideoSink:withSink:withPixelFormat:
BOOL pushExternalVideoFrame:time:
BOOL pushExternalVideoFrame:time:rotation:
BOOL pushExternalVideoFrame:time:rotation:extendedData:supplementaryInfo:
BOOL pushExternalByteVideoFrame:
void enableAudioFrameCallback:format:
void disableAudioFrameCallback:
BOOL setAudioFrameObserver:
BOOL registerAudioProcessor:
void enableAudioProcessor:audioFormat:
void disableAudioProcessor:
int pushExternalAudioFrame:
int pullExternalAudioFrame:
int setBusinessId:
int feedback:desc:
int setPublishFallbackOption:
int setSubscribeFallbackOption:
int setRemoteUserPriority:InRoomId:uid:
void setEncryptType:key:
void setCustomizeEncryptHandler:
ByteRTCRoom* createRTCRoom:
void pushScreenCaptureFrame:time:rotation:
void setExtensionConfig:
void startScreenCapture:bundleId:
void updateScreenCapture:
void stopScreenCapture
void sendScreenCaptureExtensionMessage:
void setRuntimeParameters:
void startASR:handler:
void stopASR
int startFileRecording:withRecordingConfig:type:
void stopFileRecording:
ByteRTCAudioMixingManager* getAudioMixingManager
void login:uid:
void logout
void updateLoginToken:
void setServerParams:url:
void getPeerOnlineStatus:
int64_t sendUserMessageOutsideRoom:message:config:
int64_t sendUserBinaryMessageOutsideRoom:message:config:
int64_t sendServerMessage:
int64_t sendServerBinaryMessage:
ByteRTCNetworkDetectionStartReturn startNetworkDetection:uplinkBandwidth:downlink:downlinkBandwidth:
void stopNetworkDetection
void setScreenAudioSourceType:
void setScreenAudioStreamIndex:
int pushScreenAudioFrame:
void setVideoSourceType:WithStreamIndex:
void setExternalVideoEncoderEventHandler:
BOOL pushExternalEncodedVideoFrame:withVideoIndex:withEncodedVideoFrame:
void setVideoDecoderConfig:withVideoDecoderConfig:
void requestRemoteVideoKeyFrame:
void registerRemoteEncodedVideoFrameObserver:
int sendStreamSyncInfo:config:
void muteAudioPlayback:
int startEchoTest:playDelay:
int stopEchoTest
void SetVideoWatermark:WithImagePath:WithRtcWatermarkConfig:
void ClearVideoWatermark:
void startCloudProxy:
void stopCloudProxy

变量说明

delegate

@property (nonatomic, weak) id<ByteRTCVideoDelegate> _Nullable delegate;

函数说明

destroyRTCVideo

+ (void)destroyRTCVideo;

销毁引擎实例对象

注意

getSdkVersion

+ (NSString * _Nonnull)getSdkVersion;

获取 SDK 当前的版本号。

返回值 SDK 当前的版本号。

getErrorDescription:

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

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

传入参数

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

返回值 描述文字。

createRTCVideo:delegate:parameters:

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

创建引擎对象。
如果当前线程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。
如果当前线程中已创建了引擎实例,再次调用此方法时,会返回已创建的引擎实例。

传入参数

参数名 类型 说明
appId NSString* 每个应用的唯一标识符,由 RTC 控制台随机生成的。
不同的 AppId 生成的实例在 RTC 中进行音视频通话完全独立,无法互通。
delegate id SDK 回调给应用层的 delegate,详见 ByteRTCVideoDelegate
parameters NSDictionary* 用以覆盖默认参数的本引擎实例参数。JSON 字符串格式。

返回值 可用的 ByteRTCVideo 实例

setAudioSourceType:

- (int)setAudioSourceType:(ByteRTCAudioSourceType) type;

切换音频采集方式

传入参数

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

返回值 方法调用结果:

注意

setAudioRenderType:

- (int)setAudioRenderType:(ByteRTCAudioRenderType) type;

切换音频渲染方式

传入参数

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

返回值 方法调用结果:

注意

startAudioCapture

- (void)startAudioCapture;

开启内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。 调用该方法开启后,本地用户会收到 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error: 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStartAudioCapture:uid: 的回调。

注意

stopAudioCapture

- (void)stopAudioCapture;

关闭内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。 调用该方法,本地用户会收到 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error: 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStopAudioCapture:uid: 的回调。

注意

setAudioScenario:

- (void)setAudioScenario:(ByteRTCAudioScenarioType)audioScenario;

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

传入参数

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

注意

setAudioProfile:

- (void)setAudioProfile:(ByteRTCAudioProfileType)audioProfile;

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

传入参数

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

注意

setVoiceChangerType:

- (void)setVoiceChangerType:(ByteRTCVoiceChangerType)voiceChanger;

设置变声特效类型

传入参数

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

注意

setVoiceReverbType:

- (void)setVoiceReverbType:(ByteRTCVoiceReverbType)voiceReverb;

设置混响特效类型

传入参数

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

注意

setCaptureVolume:volume:

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

调节音频采集音量

传入参数

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

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

setPlaybackVolume:

- (void)setPlaybackVolume:(NSInteger)volume;

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

传入参数

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

enableAudioPropertiesReport:

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

启用音频信息提示。

传入参数

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

注意 开启提示后,你可以:

setRemoteAudioPlaybackVolume:remoteUid:playVolume:

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

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

传入参数

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

setEarMonitorMode:

- (void)setEarMonitorMode:(ByteRTCEarMonitorMode)mode;

开启/关闭耳返功能

传入参数

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

注意

setEarMonitorVolume:

- (void)setEarMonitorVolume:(NSInteger)volume;

设置耳返的音量

传入参数

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

注意

setLocalVoicePitch:

- (void)setLocalVoicePitch:(NSInteger)pitch;

开启本地语音变调功能,多用于 K 歌场景。
使用该方法,你可以对本地语音的音调进行升调或降调等调整。

传入参数

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

enableVocalInstrumentBalance:

- (void)enableVocalInstrumentBalance:(BOOL)enable;

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

传入参数

参数名 类型 说明
enable BOOL 是否开启音量均衡功能:
• True: 是
• False: 否

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

enablePlaybackDucking:

- (void)enablePlaybackDucking:(BOOL)enable;

打开/关闭音量闪避功能,适用于“一起看”等场景。
开启该功能后,当检测到远端人声时,本地的媒体播放音量会自动减弱,从而保证远端人声的清晰可辨;当远端人声消失时,本地媒体音量会恢复到闪避前的音量水平。

传入参数

参数名 类型 说明
enable BOOL 是否开启音量闪避:
• True: 是
• False: 否

setLocalVideoSink:withSink:withPixelFormat:

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

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

传入参数

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

注意

setRemoteVideoSink:withSink:withPixelFormat:

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

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

传入参数

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

注意

enableSimulcastMode:

- (int) enableSimulcastMode:(BOOL) enabled;

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

传入参数

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

返回值 方法调用结果:

注意

SetMaxVideoEncoderConfig:

- (int)SetMaxVideoEncoderConfig:(ByteRTCVideoEncoderConfig * _Nullable) max_solution;

视频发布端设置期望发布的最大分辨率视频流参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
该接口支持设置一路视频流参数,设置多路参数请使用 SetVideoEncoderConfig:。

传入参数

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

返回值 方法调用结果:

注意

SetVideoEncoderConfig:

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

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

传入参数

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

返回值 方法调用结果:

注意

SetScreenVideoEncoderConfig:

-(int)SetScreenVideoEncoderConfig:(ByteRTCVideoEncoderConfig * _Nullable) screen_solution;

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

传入参数

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

返回值 方法调用结果: 0:成功
!0:失败

注意 调用该方法之前,屏幕共享视频流默认的编码参数为:分辨率 1920px × 1080px,帧率 15fps。

setVideoCaptureConfig:

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

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

传入参数

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

返回值

注意

setLocalVideoCanvas:withCanvas:

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

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

传入参数

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

返回值

注意

updateLocalVideoCanvas:withRenderMode:withBackgroundColor:

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

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

传入参数

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

返回值

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

setRemoteVideoCanvas:withIndex:withCanvas:

- (int)setRemoteVideoCanvas:(NSString * _Nonnull)uid withIndex:(ByteRTCStreamIndex)streamIndex withCanvas:(ByteRTCVideoCanvas * _Nullable)canvas;

渲染来自指定远端用户 uid 的视频流时,设置使用的视图和渲染模式。
如果需要解除视频的绑定视图,把 canvas 设置为空。

传入参数

参数名 类型 说明
uid NSString* 视频来源的远端用户 ID
streamIndex ByteRTCStreamIndex 视频流属性,参看 ByteRTCStreamIndex
canvas ByteRTCVideoCanvas* 视图信息和渲染模式,参看 ByteRTCVideoCanvas

返回值

注意

updateRemoteVideoCanvas:withUserId:withIndex:withRenderMode:withBackgroundColor:

- (int)updateRemoteVideoCanvas:(NSString * _Nonnull)roomid withUserId:(NSString * _Nonnull)uid withIndex:(ByteRTCStreamIndex)streamIndex withRenderMode:(ByteRTCRenderMode)renderMode withBackgroundColor:(NSUInteger)backgroundColor;

startVideoCapture

- (void)startVideoCapture;

立即开启内部视频采集。默认为关闭状态。
内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
调用该方法后,本地用户会收到 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error: 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStartVideoCapture:uid: 的回调。

注意

stopVideoCapture

- (void)stopVideoCapture;

立即关闭内部视频采集。默认为关闭状态。
内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
调用该方法后,本地用户会收到 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error: 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStopVideoCapture:uid: 的回调。

注意

setLocalVideoMirrorType:

- (int)setLocalVideoMirrorType:(ByteRTCMirrorType) mirrorType;

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

传入参数

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

注意

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

setVideoRotationMode:

- (int)setVideoRotationMode:(ByteRTCVideoRotationMode) rotationMode;

设置采集视频的旋转模式。默认以 App 方向为旋转参考系。
接收端渲染视频时,将按照和发送端相同的方式进行旋转。

传入参数

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

返回值 0:设置成功 <0:设置失败

注意

switchCamera:

- (int)switchCamera:(ByteRTCCameraID) cameraId;

切换视频内部采集时使用的前置/后置摄像头
调用此接口后,在本地会触发 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error: 回调。

传入参数

参数名 类型 说明
cameraId ByteRTCCameraID 移动端摄像头 ID,参看 ByteRTCCameraID。

返回值

注意

checkVideoEffectLicense:

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

视频特效许可证检查

传入参数

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

返回值

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

enableVideoEffect:

- (int)enableVideoEffect:(BOOL)enabled;

创建/销毁视频特效引擎

传入参数

参数名 类型 说明
enabled BOOL 是否创建视频特效引擎
• true: 创建
• false: 销毁

返回值

注意

setVideoEffectAlgoModelPath:

- (void)setVideoEffectAlgoModelPath:(NSString * _Nonnull)modelPath;

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

传入参数

参数名 类型 说明
modelPath NSString* 模型路径

setVideoEffectNodes:

- (int) setVideoEffectNodes:(NSArray <NSString *> *_Nonnull)effectNodePaths;

设置视频特效素材包

传入参数

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

返回值

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

updateVideoEffectNode:nodeKey:nodeValue:

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

设置特效强度

传入参数

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

返回值

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

setVideoEffectColorFilter:

- (int) setVideoEffectColorFilter:(NSString * _Nonnull)resPath;

设置颜色滤镜

传入参数

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

返回值

setVideoEffectColorFilterIntensity:

- (int) setVideoEffectColorFilterIntensity:(float) intensity;

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

传入参数

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

返回值

initVirtualBackground:withModel:

- (int) initVirtualBackground:(NSString* _Nonnull)licensePath withModel:(NSString* _Nonnull)modelPath;

虚拟背景功能初始化。

传入参数

参数名 类型 说明
licensePath NSString* CV 许可证文件的绝对路径
modelPath NSString* 模型参数文件的绝对路径

返回值

enableVirtualBackground:

- (int) enableVirtualBackground:(ByteRTCVirtualBackgroundSource* _Nonnull)source;

开启虚拟背景。

传入参数

参数名 类型 说明
source ByteRTCVirtualBackgroundSource* 虚拟背景对象,详见 ByteRTCVirtualBackgroundSource 。

返回值

注意

disableVirtualBackground

- (int) disableVirtualBackground;

关闭虚拟背景。

返回值

注意 调用 enableVirtualBackground: 开启虚拟背景后,可以调用此接口关闭虚拟背景。

enableEffectBeauty:

- (int) enableEffectBeauty:(BOOL)enable;

开启/关闭基础美颜

传入参数

参数名 类型 说明
enable BOOL 基础美颜开关
• true: 开启基础美颜
• false: 关闭基础美颜(默认)

返回值

注意

setBeautyIntensity:withIntensity:

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

调整基础美颜强度

传入参数

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

返回值

注意

setCameraZoomRatio:

- (int) setCameraZoomRatio: (float) zoom_val;

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

传入参数

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

返回值

注意

getCameraZoomMaxRatio

- (float) getCameraZoomMaxRatio;

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

返回值 最大变焦倍数

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

isCameraZoomSupported

- (bool) isCameraZoomSupported;

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

返回值

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

isCameraTorchSupported

- (bool) isCameraTorchSupported;

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

返回值

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

setCameraTorch:

- (int) setCameraTorch: (ByteRTCTorchState)torch_state;

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

传入参数

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

返回值

注意

isCameraFocusPositionSupported

- (bool)isCameraFocusPositionSupported;

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

返回值

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

setCameraFocusPosition:

- (int)setCameraFocusPosition:(CGPoint)position;

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

传入参数

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

返回值

注意

isCameraExposurePositionSupported

- (bool)isCameraExposurePositionSupported;

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

返回值

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

setCameraExposurePosition:

- (int)setCameraExposurePosition:(CGPoint)position;

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

传入参数

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

返回值

注意

setCameraExposureCompensation:

- (int)setCameraExposureCompensation:(float)val;

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

传入参数

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

返回值

注意

registerFaceDetectionObserver:withInterval:

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

注册人脸检测结果回调观察者
注册此观察者后,你会周期性收到 onFaceDetectionResult: 回调。

传入参数

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

返回值

sendSEIMessage:andMessage:andRepeatCount:

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

在视频通信时,通过视频帧发送 SEI 数据。

传入参数

参数名 类型 说明
streamIndex ByteRTCStreamIndex 媒体流类型,参看 ByteRTCStreamIndex
message NSData* SEI 消息。长度不超过 4 kB。
repeatCount int 消息发送重复次数。取值范围是 [0, 30]。
调用此接口后,SEI 数据会添加到当前视频帧开始的连续 repeatCount 个视频帧中。

返回值

注意

registerLocalVideoProcessor:withConfig:

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

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

传入参数

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

返回值

注意

registerLocalEncodedVideoFrameObserver:

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

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

传入参数

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

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

setAudioRoute:

- (int)setAudioRoute:(ByteRTCAudioRoute)audioRoute;

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

传入参数

参数名 类型 说明
audioRoute ByteRTCAudioRoute 音频播放路由,参见 ByteRTCAudioRoute。
不支持 ByteRTCAudioRouteUnknown。
当音量类型为媒体音量时,此参数不可设置为 ByteRTCAudioRouteEarpiece;当音量模式为通话音量时,此参数不可设置为 ByteRTCAudioRouteHeadsetBluetooth 或 ByteRTCAudioRouteHeadsetUSB。

返回值

注意

getAudioRoute

- (ByteRTCAudioRoute)getAudioRoute;

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

返回值 详见 ByteRTCAudioRoute

注意 要设置音频路由,详见 setAudioRoute:。

enableExternalSoundCard:

- (void)enableExternalSoundCard:(bool)enable;

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

传入参数

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

注意

setDefaultAudioRoute:

- (int)setDefaultAudioRoute:(ByteRTCAudioRoute)audioRoute;

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

传入参数

参数名 类型 说明
audioRoute ByteRTCAudioRoute 音频播放设备。参看 ByteRTCAudioRoute

返回值 方法调用结果

注意

startLiveTranscoding:transcoding:observer:

- (int)startLiveTranscoding:(NSString * _Nonnull)task_id transcoding:(ByteRTCLiveTranscoding *_Nullable)transcoding observer:(id<LiveTranscodingDelegate> _Nullable)observer;

新增转推直播任务,并设置合流的图片、视频视图布局和音频属性。
同一个任务中转推多路直播流时,SDK 会先将多路流合成一路流,然后再进行转推。

传入参数

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

注意

stopLiveTranscoding:

- (int)stopLiveTranscoding:(NSString *_Nonnull)task_id;

停止转推直播。

传入参数

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

返回值 方法调用结果。

updateLiveTranscoding:transcoding:

- (int)updateLiveTranscoding:(NSString *_Nonnull)task_id transcoding:(ByteRTCLiveTranscoding *_Nonnull)transcoding;

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

传入参数

参数名 类型 说明
task_id NSString* 转推直播任务 ID。指定想要更新参数设置的转推直播任务。
transcoding ByteRTCLiveTranscoding* 配置参数,详见 ByteRTCLiveTranscoding 。

返回值 方法调用结果。

startPushPublicStream:withLayout:

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

发布一路公共流
公共流是指不属于任何房间,也不属于任何用户的媒体流。使用同一 appID 的用户,可以调用 startPlayPublicStream: 获取和播放指定的公共流。

传入参数

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

返回值

注意

stopPushPublicStream:

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

停止发布当前用户发布的公共流
关于发布公共流,查看 startPushPublicStream:withLayout:。

传入参数

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

返回值

updatePublicStreamParam:withLayout:

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

更新公共流参数
关于发布公共流,查看 startPushPublicStream:withLayout:。

传入参数

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

返回值

startPlayPublicStream:

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

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

传入参数

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

返回值

注意

stopPlayPublicStream:

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

取消订阅指定公共流
关于订阅公共流,查看 startPlayPublicStream:。

传入参数

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

返回值

setPublicStreamVideoCanvas:withCanvas:

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

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

传入参数

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

返回值

setPublicStreamVideoSink:withSink:withPixelFormat:

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

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

传入参数

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

返回值

pushExternalVideoFrame:time:

- (BOOL)pushExternalVideoFrame:(CVPixelBufferRef _Nonnull )frame time:(CMTime)pts;

推送外部视频帧。

传入参数

参数名 类型 说明
frame CVPixelBufferRef 该视频帧包含待 SDK 编码的视频数据
pts CMTime CMTime

返回值

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

pushExternalVideoFrame:time:rotation:

- (BOOL)pushExternalVideoFrame:(CVPixelBufferRef _Nonnull )frame time:(CMTime)pts rotation:(ByteRTCVideoRotation)rotation;

推送外部视频帧。

传入参数

参数名 类型 说明
frame CVPixelBufferRef 该视频帧包含待 SDK 编码的视频数据
pts CMTime CMTime
rotation ByteRTCVideoRotation 当前视频角度,参看 ByteRTCVideoRotationMode

返回值

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

pushExternalVideoFrame:time:rotation:extendedData:supplementaryInfo:

- (BOOL)pushExternalVideoFrame:(CVPixelBufferRef _Nonnull )frame time:(CMTime)pts rotation:(ByteRTCVideoRotation)rotation extendedData:(NSData* _Nullable)extendedData supplementaryInfo:(NSData* _Nullable)supplementoryInfo;

推送外部视频帧。

传入参数

参数名 类型 说明
frame CVPixelBufferRef 该视频帧包含待 SDK 编码的视频数据
pts CMTime CMTime
rotation ByteRTCVideoRotation 当前视频角度
extendedData NSData* 当前帧的扩展数据,没有的话就传空
supplementoryInfo NSData* 附加信息,比如人脸位置等等

返回值

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

pushExternalByteVideoFrame:

- (BOOL)pushExternalByteVideoFrame:(ByteRTCVideoFrame * _Nonnull)frame;

推送外部视频帧,使用 ByteRTCVideoFrame 进行封装。

传入参数

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

返回值

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

enableAudioFrameCallback:format:

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

开启音频回调

传入参数

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

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

disableAudioFrameCallback:

- (void)disableAudioFrameCallback:(ByteRTCAudioFrameCallbackMethod) method;

关闭音频回调

传入参数

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

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

setAudioFrameObserver:

- (BOOL)setAudioFrameObserver:(_Nullable id<ByteRTCAudioFrameObserver>) audioFrameObserver;

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

传入参数

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

返回值

注意 注册音频数据回调观察者并调用 enableAudioFrameCallback:format: 后,ByteRTCAudioFrameObserver 会收到对应的音频回调。

registerAudioProcessor:

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

注册自定义音频处理器。
注册完成后,你可以调用 enableAudioProcessor:audioFormat:,对本地采集或接收到的远端音频进行处理。

传入参数

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

注意 重复调用此接口时,仅最后一次调用生效。

enableAudioProcessor:audioFormat:

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

获取本地采集的音频帧或接收到的远端音频帧,进行自定义处理。

传入参数

参数名 类型 说明
method ByteRTCAudioFrameMethod 音频帧类型,参看 ByteRTCAudioFrameMethod。通过多次调用此接口,可以对不同的音频帧进行自定义处理。
选择不同的值时,收到的回调不同:
• 选择本地采集的音频时,会收到 onProcessRecordAudioFrame:
• 选择远端音频流的混音音频时,会收到 onProcessPlayBackAudioFrame:
• 选择远端音频流时,会收到 onProcessRemoteUserAudioFrame:audioFrame:
format ByteRTCAudioFormat* 设定自定义处理时获取的音频帧格式,参看 ByteRTCAudioFormat。

注意

disableAudioProcessor:

- (void)disableAudioProcessor:(ByteRTCAudioFrameMethod)method;

关闭自定义音频处理。

传入参数

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

pushExternalAudioFrame:

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

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

传入参数

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

返回值 方法调用结果

注意

pullExternalAudioFrame:

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

拉取音频数据,用于自定义渲染。

传入参数

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

返回值 方法调用结果

注意

setBusinessId:

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

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

传入参数

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

返回值

注意

feedback:desc:

- (int)feedback:(NSArray<ByteRTCProblemOption *> * _Nullable)types desc:(NSString* _Nullable)desc;

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

传入参数

参数名 类型 说明
types NSArray* 预设问题列表,参看 ByteRTCProblemOption
desc NSString* 预设问题以外的其他问题的具体描述

返回值

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

setPublishFallbackOption:

- (int)setPublishFallbackOption:(ByteRTCPublishFallbackOption)option;

设置发布的音视频流的回退选项。
你可以调用该接口设置网络不佳或设备性能不足时从大流起进行降级处理,以保证通话质量。

传入参数

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

返回值 方法调用结果:

注意

setSubscribeFallbackOption:

- (int)setSubscribeFallbackOption:(ByteRTCSubscribeFallbackOption)option;

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

传入参数

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

返回值 方法调用结果:

注意

setRemoteUserPriority:InRoomId:uid:

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

设置用户优先级

传入参数

参数名 类型 说明
priority ByteRTCRemoteUserPriority 远端用户的优先级, 详见枚举类型 ByteRTCRemoteUserPriority
uid NSString* 远端用户的 ID

返回值

注意

setEncryptType:key:

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

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

传入参数

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

注意

setCustomizeEncryptHandler:

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

设置自定义加密和解密方式 需要实现对应的加密和解密方法。详情参考 ByteRTCEncryptHandler

传入参数

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

注意

createRTCRoom:

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

pushScreenCaptureFrame:time:rotation:

- (void)pushScreenCaptureFrame:(CVPixelBufferRef _Nonnull )frame time:(CMTime)pts rotation:(int)rotation;

推送外部屏幕采集帧

传入参数

参数名 类型 说明
frame CVPixelBufferRef 该视频帧包含待 SDK 编码的视频数据
pts CMTime 每一帧的时间戳,单位 ms
rotation int 帧的旋转角度包含: 0, 90, 180, 270

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

setExtensionConfig:

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

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

传入参数

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

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

startScreenCapture:bundleId:

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

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

传入参数

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

注意

updateScreenCapture:

- (void)updateScreenCapture:(ByteRTCScreenMediaType) type;

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

传入参数

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

注意

stopScreenCapture

- (void)stopScreenCapture;

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

注意

sendScreenCaptureExtensionMessage:

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

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

传入参数

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

注意 在 startScreenCapture:bundleId: 后调用该方法。

setRuntimeParameters:

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

设置运行时的参数

传入参数

参数名 类型 说明
parameters NSDictionary* 保留参数

startASR:handler:

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

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

传入参数

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

stopASR

- (void)stopASR;

关闭语音识别服务

startFileRecording:withRecordingConfig:type:

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

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

传入参数

参数名 类型 说明
streamIndex ByteRTCStreamIndex 流属性,指定录制主流还是屏幕流,参看 ByteRTCStreamIndex
recordingConfig ByteRTCRecordingConfig* 本地录制参数配置,参看 ByteRTCRecordingConfig

返回值

注意

stopFileRecording:

- (void)stopFileRecording:(ByteRTCStreamIndex)streamIndex;

停止本地录制

传入参数

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

注意

getAudioMixingManager

- (ByteRTCAudioMixingManager *_Nullable)getAudioMixingManager;

混音管理接口创建

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

login:uid:

- (void)login:(NSString * _Nonnull)token uid:(NSString * _Nonnull)uid;

必须先登录,才能发送房间外点对点消息和向应用服务器发送消息
在调用本接口登录后,如果想要登出,需要调用 logout

传入参数

参数名 类型 说明
token NSString* 动态密钥
用户登录必须携带的 Token,用于鉴权验证。
登录 Token 与加入房间时必须携带的 Token 不同。测试时可使用控制台生成临时 Token,roomId 填任意值或置空,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
uid NSString* 用户 ID
用户 ID 在 appid的维度下是唯一的。

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

logout

- (void)logout;

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

注意

updateLoginToken:

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

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

传入参数

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

注意

setServerParams:url:

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

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

传入参数

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

注意

getPeerOnlineStatus:

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

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

传入参数

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

注意

sendUserMessageOutsideRoom:message:config:

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

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

传入参数

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

返回值

注意

sendUserBinaryMessageOutsideRoom:message:config:

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

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

传入参数

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

返回值

注意

sendServerMessage:

- (int64_t)sendServerMessage:(NSString * _Nonnull)messageStr;

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

传入参数

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

返回值

注意

sendServerBinaryMessage:

- (int64_t)sendServerBinaryMessage:(NSData * _Nonnull)messageStr;

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

传入参数

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

返回值

注意

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

开始通话前网络探测

传入参数

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

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

注意

stopNetworkDetection

- (void)stopNetworkDetection;

停止通话前网络探测

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

setScreenAudioSourceType:

- (void) setScreenAudioSourceType:(ByteRTCAudioSourceType)sourceType;

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

传入参数

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

注意

setScreenAudioStreamIndex:

- (void) setScreenAudioStreamIndex:(ByteRTCStreamIndex) index;

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

传入参数

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

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

pushScreenAudioFrame:

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

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

传入参数

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

返回值 方法调用结果

注意

setVideoSourceType:WithStreamIndex:

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

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

传入参数

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

注意

setExternalVideoEncoderEventHandler:

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

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

传入参数

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

注意

pushExternalEncodedVideoFrame:withVideoIndex:withEncodedVideoFrame:

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

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

传入参数

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

注意

setVideoDecoderConfig:withVideoDecoderConfig:

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

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

传入参数

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

注意

requestRemoteVideoKeyFrame:

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

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

传入参数

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

注意

registerRemoteEncodedVideoFrameObserver:

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

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

传入参数

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

注意

sendStreamSyncInfo:config:

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

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

传入参数

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

返回值

注意 在采用 ByteRTCRoomProfileLiveBroadcasting 作为房间模式时,此消息一定会送达。在其他房间模式下,如果本地用户未说话,此消息不一定会送达。

muteAudioPlayback:

- (void)muteAudioPlayback:(ByteRTCMuteState)muteState;

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

传入参数

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

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

startEchoTest:playDelay:

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

开启音视频回路测试。
在进房前,用户可调用该接口对音视频通话全链路进行检测,包括对音视频设备以及用户上下行网络的检测,从而帮助用户判断是否可以正常发布和接收音视频流。
开始检测后,SDK 会录制你声音或视频。如果你在设置的延时范围内收到了回放,则视为音视频回路测试正常。

传入参数

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

返回值 方法调用结果:

注意

stopEchoTest

- (int)stopEchoTest;

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

返回值 方法调用结果:

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

SetVideoWatermark:WithImagePath:WithRtcWatermarkConfig:

- (void)SetVideoWatermark:(ByteRTCStreamIndex)streamIndex WithImagePath:(NSString * _Nullable)imagePath WithRtcWatermarkConfig:(ByteRTCVideoWatermarkConfig* _Nonnull)rtcWatermarkConfig;

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

传入参数

参数名 类型 说明
streamIndex ByteRTCStreamIndex 需要添加水印的视频流属性,参看 ByteRTCStreamIndex。
imagePath NSString* 水印图片路径,支持本地文件绝对路径和Asset 资源路径(/assets/xx.png),长度限制为 512 字节。
水印图片为 PNG 或 JPG 格式。
rtcWatermarkConfig ByteRTCVideoWatermarkConfig* 水印参数,参看 ByteRTCVideoWatermarkConfig。

注意

ClearVideoWatermark:

- (void)ClearVideoWatermark:(ByteRTCStreamIndex)streamIndex;

移除指定视频流的水印。

传入参数

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

startCloudProxy:

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

开启云代理

传入参数

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

注意

stopCloudProxy

- (void)stopCloudProxy;

关闭云代理

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

ByteRTCAudioMixingManager

@interface ByteRTCAudioMixingManager :NSObject

成员函数

返回 名称
void startAudioMixing:filePath:config:
void stopAudioMixing:
void pauseAudioMixing:
void resumeAudioMixing:
void preloadAudioMixing:filePath:
void unloadAudioMixing:
void setAudioMixingVolume:volume:type:
int getAudioMixingDuration:
int getAudioMixingCurrentPosition:
void setAudioMixingPosition:position:
void setAudioMixingDualMonoMode:mode:
void setAudioMixingPitch:pitch:
int setAudioMixingPlaybackSpeed:speed:
void setAudioMixingLoudness:loudness:
void setAudioMixingProgressInterval:interval:
void enableAudioMixingFrame:type:
void disableAudioMixingFrame:
int pushAudioMixingFrame:audioFrame:
int getAudioTrackCount:
void selectAudioTrack:audioTrackIndex:

函数说明

startAudioMixing:filePath:config:

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

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

传入参数

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





mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYYYY
iOSYYYYYY
WindowsYYYYYYYY
config ByteRTCAudioMixingConfig* 混音配置
可以设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端,详见 ByteRTCAudioMixingConfig

注意

stopAudioMixing:

-(void)stopAudioMixing:(int)mixId;

停止播放音频文件及混音

传入参数

参数名 类型 说明
mixId int 混音 ID

注意

pauseAudioMixing:

-(void)pauseAudioMixing:(int)mixId;

暂停播放音频文件

传入参数

参数名 类型 说明
mixId int 混音 ID

注意

resumeAudioMixing:

-(void)resumeAudioMixing:(int)mixId;

恢复播放音频文件

传入参数

参数名 类型 说明
mixId int 混音 ID

注意

preloadAudioMixing:filePath:

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

预加载指定音频文件到内存中,以避免频繁播放时的重复加载。

传入参数

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





mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYYYY
iOSYYYYYY
WindowsYYYYYYYY

注意

unloadAudioMixing:

-(void)unloadAudioMixing:(int)mixId;

卸载指定音频文件

传入参数

参数名 类型 说明
mixId int 混音 ID

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

setAudioMixingVolume:volume:type:

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

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

传入参数

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

getAudioMixingDuration:

-(int)getAudioMixingDuration:(int)mixId;

获取音频文件时长

传入参数

参数名 类型 说明
mixId int 混音 ID

返回值

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

getAudioMixingCurrentPosition:

-(int)getAudioMixingCurrentPosition:(int)mixId;

获取音频文件播放进度

传入参数

参数名 类型 说明
mixId int 混音 ID

返回值

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

setAudioMixingPosition:position:

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

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

传入参数

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

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

setAudioMixingDualMonoMode:mode:

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

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

传入参数

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

注意

setAudioMixingPitch:pitch:

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

开启本地播放音乐文件变调功能,多用于 K 歌场景。
使用该方法,你可以对本地播放音乐文件的音调进行升调或降调等调整。

传入参数

参数名 类型 说明
mixId int 混音 ID
pitch int 相对于音乐文件原始音调的升高/降低值,取值范围[-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;

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

传入参数

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

注意

setAudioMixingLoudness:loudness:

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

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

传入参数

参数名 类型 说明
mixId int 混音 ID
loudness float 原始响度,单位: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;

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

传入参数

参数名 类型 说明
mixId int 混音 ID
可以通过多次调用本接口传入不同的 ID 对多个 ID 进行间隔设置。
interval int64_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;

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

传入参数

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

注意

disableAudioMixingFrame:

-(void)disableAudioMixingFrame:(int)mixId;

关闭 PCM 混音

传入参数

参数名 类型 说明
mixId int 混音 ID。

pushAudioMixingFrame:audioFrame:

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

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

传入参数

参数名 类型 说明
mixId int 混音 ID。
audioFrame ByteRTCAudioFrame* 音频帧,详见 ByteRTCAudioFrame。

返回值

注意

getAudioTrackCount:

-(int)getAudioTrackCount:(int)mixId;

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

传入参数

参数名 类型 说明
mixId int 混音 ID

返回值 方法调用结果

注意

selectAudioTrack:audioTrackIndex:

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

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

传入参数

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

注意

ByteRTCRangeAudio

@interface ByteRTCRangeAudio :NSObject

范围语音接口实例

成员函数

返回 名称
void enableRangeAudio:
int updateReceiveRange:
int updatePosition:
void registerRangeAudioObserver:
int setAttenuationModel:coefficient:

函数说明

enableRangeAudio:

- (void)enableRangeAudio:(BOOL)enable;

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

传入参数

参数名 类型 说明
enable BOOL 是否开启范围语音功能:
• true: 开启
• false: 关闭(默认)

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

updateReceiveRange:

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

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

传入参数

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

返回值 方法调用结果:

注意 若此前你已调用 registerRangeAudioObserver: 注册了范围语音衰减系数监测器,房间内有任何用户调用该接口更新音频收听范围后,你都会收到 onRangeAudioInfo: 回调。

updatePosition:

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

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

传入参数

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

返回值 方法调用结果:

注意

registerRangeAudioObserver:

- (void)registerRangeAudioObserver:(_Nullable id<ByteRTCRangeAudioObserver>) observer;

设置范围语音衰减系数监测器。

传入参数

参数名 类型 说明
observer id 范围语音衰减系数监测器。
设置后,SDK 会在监测到房间内有用户更新自身位置坐标或音频收听范围后,触发 onRangeAudioInfo: 回调。具体参看 ByteRTCRangeAudioObserver。

注意 该方法仅适用于手动订阅模式,自动订阅无需设置。

setAttenuationModel:coefficient:

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

设置范围语音的音量衰减模式。
衰减模式更改后,onRangeAudioInfo: 回调将根据最后设置的衰减模式进行计算并返回音量衰减数值

传入参数

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

返回值 调用是否成功

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

ByteRTCSpatialAudio

@interface ByteRTCSpatialAudio :NSObject

空间音频接口实例

成员函数

返回 名称
void enableSpatialAudio:
int updatePosition:
int updateSelfOrientation:
void disableRemoteOrientation

函数说明

enableSpatialAudio:

- (void)enableSpatialAudio:(BOOL)enable;

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

传入参数

参数名 类型 说明
enable BOOL 是否开启空间音频功能:
• true:开启
• false:关闭(默认)

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

updatePosition:

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

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

传入参数

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

返回值

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

updateSelfOrientation:

-(int)updateSelfOrientation:(HumanOrientation* _Nonnull) orientation;

更新本地用户在空间音频坐标系下的朝向。

传入参数

参数名 类型 说明
orientation HumanOrientation* 自身朝向信息,参看 HumanOrientation。

返回值 方法调用结果:

注意

disableRemoteOrientation

-(void)disableRemoteOrientation;

参与通话的各端调用本接口后,将忽略远端用户的朝向,认为所有远端用户都面向本地用户。
如果此后调用 updateSelfOrientation: 更新本地用户朝向,远端用户无法感知这些变化,但本地用户接收音频时可以感知自身朝向改变带来的音频效果变化。

注意