5#ifndef INERtcEngineEx_h
6#define INERtcEngineEx_h
15#pragma clang diagnostic push
16#pragma clang diagnostic ignored "-Wdocumentation"
19NS_ASSUME_NONNULL_BEGIN
29@protocol INERtcEngineEx <INERtcEngine>
78- (int)enableDualStreamMode:(BOOL)enable;
270- (int)muteLocalAudio:(BOOL)muted;
327- (int)subscribeRemoteAudio:(BOOL)subscribe forUserID:(uint64_t)userID;
376- (int)subscribeAllRemoteAudio:(BOOL)subscribe;
406- (int)setAudioSubscribeOnlyBy:(NSArray<NSNumber*> *)uidArray;
432- (int)enableLocalSubStreamAudio:(BOOL)enabled;
489- (int)subscribeRemoteSubStreamAudio:(BOOL)subscribe forUserID:(uint64_t)userID;
515- (int)muteLocalSubStreamAudio:(BOOL)muted;
629- (int)setExternalSubStreamAudioSource:(BOOL)enabled sampleRate:(int32_t)sampleRate channels:(int32_t)channels;
1168 - (int)muteLocalVideo:(BOOL)muted;
1270- (int)setLoudspeakerMode:(
bool)enable;
1286- (int)getLoudspeakerMode:(
bool *)enabled;
1392- (int)setRemoteHighPriorityAudioStream:(BOOL)enable forUserID:(uint64_t)userID streamType:(
NERtcAudioStreamType)streamType;
1462- (int)updatePermissionKey:(NSString *)key;
1591#pragma mark - External Video Input
1657- (int)setExternalVideoSource:(BOOL)enable isScreen:(BOOL)isScreen;
1774#pragma mark - Sub Stream
2078- (int)setupRemoteSubStreamVideoCanvas:(nullable
NERtcVideoCanvas *)canvas forUserID:(uint64_t)userID;
2203- (int)subscribeRemoteSubStreamVideo:(BOOL)subscribe forUserID:(uint64_t)userID;
2323#pragma mark - Audio Session
2347#pragma mark - Audio Device Manager
2389- (int)setPlayoutDeviceMute:(
bool)muted;
2404- (int)getPlayoutDeviceMute:(
bool *)muted;
2452- (int)setRecordDeviceMute:(
bool)muted;
2467- (int)getRecordDeviceMute:(
bool *)muted;
2470#pragma mark - Camera & Torch Settings
2592- (int)setCameraExposurePosition:(CGPoint)positionInView;
2612- (int)setCameraTorchOn:(BOOL)on;
2674- (int)setCameraZoomFactor:(
float)factor;
2747- (int)setCameraFocusPositionX:(
float)focusX Y:(
float)focusY;
2857#pragma mark - Audio Mixing
3012- (int)setAudioMixingSendVolume:(uint32_t)volume;
3028- (int)getAudioMixingSendVolume:(uint32_t *)volume;
3044- (int)setAudioMixingPlaybackVolume:(uint32_t)volume;
3060- (int)getAudioMixingPlaybackVolume:(uint32_t *)volume;
3076- (int)getAudioMixingDuration:(uint64_t *)duration;
3092- (int)getAudioMixingCurrentPosition:(uint64_t *)position;
3108- (int)setAudioMixingPosition:(uint64_t)position;
3151- (int)setAudioMixingPitch:(int32_t)pitch;
3173- (int)getAudioMixingPitch:(int32_t *)pitch;
3175#pragma mark - Audio Effect
3283- (int)stopEffectWitdId:(uint32_t)effectId;
3327- (int)pauseEffectWitdId:(uint32_t)effectId;
3343- (int)resumeEffectWitdId:(uint32_t)effectId;
3389- (int)setEffectSendVolumeWithId:(uint32_t)effectId volume:(uint32_t)volume;
3407- (int)getEffectSendVolumeWithId:(uint32_t)effectId volume:(uint32_t *)volume;
3425- (int)setEffectPlaybackVolumeWithId:(uint32_t)effectId volume:(uint32_t)volume;
3441- (int)getEffectPlaybackVolumeWithId:(uint32_t)effectId volume:(uint32_t *)volume;
3463- (int)getEffectDurationWithId:(uint32_t)effectId duration:(uint64_t *)duration;
3485- (int)getEffectCurrentPositionWithId:(uint32_t)effectId position:(uint64_t *)position;
3527- (int)setEffectPositionWithId:(uint32_t)effectId position:(uint64_t)position;
3575- (int)setEffectPitchWithId:(uint32_t)effectId pitch:(int32_t)pitch;
3613- (int)getEffectPitchWithId:(uint32_t)effectId pitch:(int32_t *)pitch;
3615#pragma mark - In-ear monitoring
3667- (int)enableEarback:(BOOL)enabled volume:(uint32_t)volume;
3681- (int)setEarbackVolume:(uint32_t)volume;
3683#pragma mark - Audio Recording
3826#pragma mark - External Audio
3893- (int)setExternalAudioSource:(BOOL)enabled sampleRate:(int32_t)sampleRate channels:(int32_t)channels;
3986 - (int)setExternalAudioRender:(BOOL)enabled sampleRate:(int32_t)sampleRate channels:(int32_t)channels;
4013- (int)pullExternalAudioFrame:(
void *_Nonnull)data length:(
int)len;
4015#pragma mark - 3D Audio
4047-(int)setRangeAudioTeamID:(int32_t)teamId;
4119- (int)enableSpatializerRoomEffects:(BOOL)enabled;
4176- (int)enableSpatializer:(BOOL)enabled applyToTeam:(BOOL)applyToTeam;
4178#pragma mark - ASL black and white list
4210- (int)setSubscribeAudioAllowlist:(NSArray<NSNumber*> *)uidArray;
4212#pragma mark - Data Channel
4242- (int)enableLocalData:(BOOL)enabled;
4272- (int)subscribeRemoteData:(BOOL)subscribe forUserID:(uint64_t)userID;
4292- (int)sendData:(NSData *)data;
4294#pragma mark - Media Statistic Observer
4308- (int)addEngineMediaStatsObserver:(
id<NERtcEngineMediaStatsObserver>)observer;
4322- (int)removeEngineMediaStatsObserver:(
id<NERtcEngineMediaStatsObserver>)observer;
4337#pragma mark - Live Stream
4508#pragma mark - Audio Frame Observer
4735- (int)setAudioFrameObserver:(nullable
id<NERtcEngineAudioFrameObserver>)observer;
4759- (int)setVideoFrameObserver:(nullable
id<NERtcEngineVideoFrameObserver>)videoframeObserver;
4786- (int)addRemoteVideoFrameObserver:(nullable
id<NERtcEngineVideoFrameObserver>)videoframeObserver;
4789#pragma mark - Volume Indication
4841- (int)enableAudioVolumeIndication:(BOOL)enable interval:(uint64_t)interval;
4908- (int)enableAudioVolumeIndication:(BOOL)enable interval:(uint64_t)interval vad:(BOOL)enableVad;
4911#pragma mark - Signal Volume
4954- (int)adjustRecordingSignalVolume:(uint32_t)volume;
4999- (int)adjustPlaybackSignalVolume:(uint32_t)volume;
5056- (int)adjustUserPlaybackSignalVolume:(uint32_t)volume forUserID:(uint64_t)userID;
5093- (int)adjustChannelPlaybackSignalVolume:(uint32_t)volume;
5095#pragma mark - Voice Effect
5117- (int)setLocalVoicePitch:(
double)pitch;
5245#pragma mark - WaterMark
5271#pragma mark - Snapshot
5354- (int)reportCustomEvent:(NSString *)eventName
5355 customIdentify:(NSString *)customIdentify
5356 param:(NSDictionary *)param;
5432- (int)sendSEIMsg:(NSData *)data;
5434#pragma mark - MediaRelay
5590- (int)enableSuperResolution:(BOOL)enabled;
5624#pragma mark - NetworkQualiityTest
5675#pragma mark - Channel
5691#pragma mark - Video Effect
5725- (int)enableVideoCorrection:(BOOL)enable;
5850#pragma mark - Cloud Proxy
5915- (void)setStreamAlignmentProperty:(BOOL)enable;
5933#pragma mark - Encoder & Decoder
5972- (int)setPreDecodeObserver:(nullable
id<NERtcEnginePreDecodeObserver>)observer;
6012- (int)setVideoEncoderQosObserver:(nullable
id<NERtcEngineVideoEncoderQosObserver>)encoderQosObserver;
6222#pragma mark - Push Streaming
6350#pragma mark - Play Streaming
6470- (int)stopPlayStreaming:(NSString *)streamId;
6506- (int)pausePlayStreaming:(NSString *)streamId;
6541- (int)resumePlayStreaming:(NSString *)streamId;
6578- (int)muteVideoForPlayStreaming:(NSString *)streamId mute:(BOOL)mute;
6614- (int)muteAudioForPlayStreaming:(NSString *)streamId mute:(BOOL)mute;
6651- (int)seekPlayStreaming:(NSString *)streamId positionMs:(int64_t)positionMs;
6653#pragma mark - AI Relate
6743- (int)aiManualInterrupt:(uint64_t)dstUserId;
6805#pragma mark - Video Mosaic
6879#pragma mark - Video Blend
6998NS_ASSUME_NONNULL_END
7000#pragma clang diagnostic pop
void(^ NERtcTakeSnapshotCallback)(int errorCode, UIImage *_Nullable image)
截图结果 block 回调。
定义 INERtcEngine.h:74
void(^ NERtcLLMRequestCompletion)(NSString *taskId, int code, NSString *_Nullable errorMsg)
LLM 请求结果 block 回调。
定义 INERtcEngine.h:60
void(^ NERtcLiveStreamCompletion)(NSString *taskId, kNERtcLiveStreamError errorCode)
互动直播推流 block。
定义 INERtcEngine.h:50
NERtcAudioEqualizationBandFrequency
频谱子带索引 预设值。
定义 NERtcEngineEnum.h:2848
NERtcVideoLowlightEnhanceLevel
定义 NERtcEngineEnum.h:4362
NERtcAudioDumpType
音频 dump 类型
定义 NERtcEngineEnum.h:2362
NERtcVideoStreamLayerCount
定义 NERtcEngineEnum.h:504
NERtcVoiceChangerType
变声 预设值。
定义 NERtcEngineEnum.h:2949
NERtcSpatializerRenderMode
空间音效渲染模式
定义 NERtcEngineEnum.h:2551
NERtcDistanceRolloffModel
空间音效衰减模式
定义 NERtcEngineEnum.h:2577
NERtcVideoRotationMode
视频旋转模式。
定义 NERtcEngineEnum.h:832
NERtcAudioRecordingQuality
录音音质。
定义 NERtcEngineEnum.h:2682
NERtcCameraPosition
指定的摄像头位置。
定义 NERtcEngineEnum.h:1470
NERtcVideoDumpType
视频 dump 类型
定义 NERtcEngineEnum.h:2374
NERtcRemoteVideoStreamType
远端视频流类型。
定义 NERtcEngineEnum.h:709
NERtcStreamFallbackOptions
定义 NERtcEngineEnum.h:2638
NERtcFeatureSupportType
定义 NERtcEngineEnum.h:404
NERtcNetworkConnectionType
网络连接的类型。
定义 NERtcEngineEnum.h:3388
NERtcRangeAudioMode
定义 NERtcEngineEnum.h:2596
NERtcFeatureType
功能类型
定义 NERtcEngineEnum.h:392
NERtcStreamChannelType
SEI 发送的流通道类型。
定义 NERtcEngineEnum.h:1135
NERtcAudioSessionOperationRestriction
音频会话控制权限。 SDK 对 Audio Session 的控制权限。
定义 NERtcEngineEnum.h:2315
NERtcTransportType
云代理模式。
定义 NERtcEngineEnum.h:4126
NERtcVoiceBeautifierType
美声 预设值。
定义 NERtcEngineEnum.h:3041
NERtcVideoRenderScaleMode
视频渲染缩放模式。
定义 NERtcEngineEnum.h:794
NERtcMediaPriorityType
定义 NERtcEngineEnum.h:2617
NERtcAudioStreamType
音频流类型,目前同时支持音频两路流:主流和辅流
定义 NERtcEngineEnum.h:2348
定义 NERtcEngineBase.h:3384
编码好的音频数据
定义 NERtcEngineBase.h:3021
音频帧。
定义 NERtcEngineBase.h:1549
摄像头采集配置。
定义 NERtcEngineBase.h:491
Options for creating audio effects
定义 NERtcEngineBase.h:819
Options for creating mixing audios
定义 NERtcEngineBase.h:701
配置媒体流加密模式和密钥。
定义 NERtcEngineBase.h:2252
需要应用马赛克效果的归一化区域(0~1)。
定义 NERtcEngineBase.h:3577
LLM 请求参数。
定义 NERtcEngineBase.h:3341
Last mile 网络探测配置。
定义 NERtcEngineBase.h:2440
直播推流任务的配置。
定义 NERtcEngineBase.h:1338
定义 NERtcEngineBase.h:3518
定义 NERtcEngineBase.h:3270
3D 音效算法中坐标信息。
定义 NERtcEngineBase.h:3071
定义 NERtcEngineBase.h:3246
混响参数
定义 NERtcEngineBase.h:2742
3D 音效房间属性设置。
定义 NERtcEngineBase.h:3147
视频画布设置。
定义 NERtcEngineBase.h:299
视频图像畸变矫正相关设置。
定义 NERtcEngineBase.h:2641
定义 NERtcEngineBase.h:2979
外部视频混合配置。
定义 NERtcEngineBase.h:3625
视频帧信息。
定义 NERtcEngineBase.h:1639
本地辅流发送配置。
定义 NERtcEngineBase.h:661
视频水印设置,目前支持三种类型的水印,但只能其中选择一种水印生效。
定义 NERtcEngineBase.h:2198
自定义背景图像。
定义 NERtcEngineBase.h:2678
BOOL isCameraZoomSupported()
检测设备当前使用的摄像头是否支持缩放功能。 该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。
int stopPushStreaming()
停止推流。 通过此接口可以停止当前正在进行的 rtmp 推流。
int stopPreview()
停止视频预览。 通过此接口可以实现在预览本地视频后关闭预览。
int stopAudioRecording()
停止客户端本地录音。 本端用户离开房间时会自动停止本地录音,也可以通过此接口实现在通话过程中随时停止录音。
int stopAudioDump()
结束记录音频 dump。
int resumeChannelMediaRelay()
恢复跨房间媒体流转发。
int initSpatializer()
初始化引擎 3D 音效算法
int startPreview()
开启视频预览。 通过本接口可以实现在加入房间前启动本地视频预览,支持预览本地摄像头或外部输入视频。
BOOL isCameraFocusSupported()
检测设备是否支持手动对焦功能。
int64_t getNtpTimeOffset()
获取本地系统时间与服务端时间差值。 可以用于做时间对齐,通过 (毫秒级系统时间 - offset) 可能得到当前服务端时间。
NERtcNetworkConnectionType getNetworkType()
获取本地网络连接类型。
int stopChannelMediaRelay()
停止跨房间媒体流转发。 通常在主播离开房间时,跨房间媒体流转发会自动停止;您也可以根据需要随时调用该方法,此时主播会退出所有目标房间。
int stopASRCaption()
停止实时字幕。 通过此接口可以停止实时字幕。
BOOL isCameraTorchOn()
查询设备是否开启了闪光灯。
int pauseChannelMediaRelay()
暂停跨房间媒体流转发。
BOOL isCameraTorchSupported()
检测设备是否支持闪光灯常亮。
int pauseAudioMixing()
暂停伴音。 通过此接口可以实现暂停播放伴音文件。
int uploadSdkInfo()
上传 SDK 信息。 上传的信息包括 log 和 Audio dump 等文件。
int stopScreenCapture()
关闭屏幕共享。 通过此接口可以实现关闭屏幕共享辅流。
int stopLastmileProbeTest()
停止通话前网络质量探测。
BOOL isCameraExposurePositionSupported()
检测设备是否支持手动曝光功能。
int startAudioDump()
开始记录音频 dump。 音频 dump 可用于分析音频问题。
int resumeAllEffects()
恢复播放所有音效文件。 请在加入房间后调用该方法。
int clearRemoteHighPriorityAudioStream()
清除之前设置的所有高优先级音频流。
int cleanupEngineMediaStatsObserver()
清除全部媒体统计信息观测器。
int stopAudioMixing()
停止伴音。 通过本接口可以实现停止播放本地或在线音频文件,或者录音设备采集的混音音频流。
int resumeAudioMixing()
恢复伴音。 通过此接口可以实现恢复播放伴音文件。
float maxCameraZoomScale()
获取摄像头支持最大缩放比例。
int pauseAllEffects()
暂停播放所有音效文件。 请在加入房间后调用该方法。
int stopAllEffects()
停止播放所有音效文件。 通过此接口可以实现在同时播放多个音效文件时,可以一次性停止播放所有文件(含暂停播放的文件)。