NERtc iOS SDK  V4.6.20
INERtcEngineEx.h
浏览该文件的文档.
1 /*
2  * Copyright (c) 2021 NetEase, Inc. All rights reserved.
3  */
4 
5 #ifndef INERtcEngineEx_h
6 #define INERtcEngineEx_h
7 
8 #import "INERtcEngine.h"
10 #import "NERtcEngineBase.h"
11 #import "NERtcEngineDelegate.h"
12 
13 @class NERtcChannel;
14 
15 NS_ASSUME_NONNULL_BEGIN
16 
26 
49 - (int)enableDualStreamMode:(BOOL)enable;
50 
77 - (int)setLocalMediaPriority:(NERtcMediaPriorityType)priority preemptive:(BOOL)preemptive;
78 
79 
104 - (int)setLocalPublishFallbackOption:(NERtcStreamFallbackOptions)option;
105 
130 - (int)setRemoteSubscribeFallbackOption:(NERtcStreamFallbackOptions)option;
131 
163 - (int)muteLocalAudio:(BOOL)muted;
164 
186 - (int)subscribeRemoteAudio:(BOOL)subscribe forUserID:(uint64_t)userID;
187 
207 - (int)subscribeAllRemoteAudio:(BOOL)subscribe;
208 
237 - (int)setAudioSubscribeOnlyBy:(NSArray<NSNumber*> *)uidArray;
238 
263 - (int)enableLocalSubStreamAudio:(BOOL)enabled;
264 
292 - (int)subscribeRemoteSubStreamAudio:(BOOL)subscribe forUserID:(uint64_t)userID;
293 
318 - (int)muteLocalSubStreamAudio:(BOOL)muted;
319 
320 
363 - (int)setExternalSubStreamAudioSource:(BOOL)enabled sampleRate:(int32_t)sampleRate channels:(int32_t)channels;
364 
393 - (int)pushExternalSubStreamAudioFrame:(NERtcAudioFrame *)frame;
394 
422  - (int)subscribeRemoteVideo:(BOOL)subscribe forUserID:(uint64_t)userID streamType:(NERtcRemoteVideoStreamType)streamType;
423 
440 - (int)startPreview;
441 
491 - (int)startPreview:(NERtcStreamChannelType)streamType;
492 
510 - (int)stopPreview;
511 
549 - (int)stopPreview:(NERtcStreamChannelType)streamType;
550 
565 - (int)setLocalRenderScaleMode:(NERtcVideoRenderScaleMode)mode;
566 
583 - (int)setRemoteRenderScaleMode:(NERtcVideoRenderScaleMode)mode forUserID:(uint64_t)userID;
584 
609  - (int)setVideoRotationMode:(NERtcVideoRotationMode)rotationMode;
610 
641  - (int)muteLocalVideo:(BOOL)muted;
642 
693  - (int)muteLocalVideo:(BOOL)muted streamType:(NERtcStreamChannelType)streamType;
694 
711 - (int)setLoudspeakerMode:(bool)enable;
712 
727 - (int)getLoudspeakerMode:(bool *)enabled;
728 
729 
742 - (int)startAudioDump;
743 
758 - (int)startAudioDumpWithType:(NERtcAudioDumpType)type;
759 
770 - (int)stopAudioDump;
771 
806 - (int)setRemoteHighPriorityAudioStream:(BOOL)enable forUserID:(uint64_t)userID streamType:(NERtcAudioStreamType)streamType;
807 
822 - (int)switchCameraWithPosition:(NERtcCameraPosition)position;
823 
824 #pragma mark -- External Video Input
825 
856 - (int)setExternalVideoSource:(BOOL)enable isScreen:(BOOL)isScreen;
857 
927 - (int)setExternalVideoSource:(BOOL)enable streamType:(NERtcStreamChannelType)streamType;
928 
953 - (int)pushExternalVideoFrame:(NERtcVideoFrame*)frame;
954 
955 #pragma mark -- Sub Stream
956 
981 - (int)setupLocalSubStreamVideoCanvas:(NERtcVideoCanvas *)canvas;
982 
1001 - (int)startScreenCapture:(NERtcVideoSubStreamEncodeConfiguration *)config;
1002 
1017 - (int)stopScreenCapture;
1018 
1039 - (int)setLocalRenderSubStreamScaleMode:(NERtcVideoRenderScaleMode)mode;
1040 
1067 - (int)setupRemoteSubStreamVideoCanvas:(NERtcVideoCanvas *)canvas forUserID:(uint64_t)userID;
1068 
1089 - (int)subscribeRemoteSubStreamVideo:(BOOL)subscribe forUserID:(uint64_t)userID;
1090 
1111 - (int)setRemoteRenderSubStreamVideoScaleMode:(NERtcVideoRenderScaleMode)mode forUserID:(uint64_t)userID;
1112 
1113 #pragma mark - AUDIO SESSION
1114 
1135 - (int)setAudioSessionOperationRestriction:(NERtcAudioSessionOperationRestriction)restriction;
1136 
1137 #pragma mark -- AUDIO DEVICE MANAGER
1138 
1151 - (int)setPlayoutDeviceMute:(bool)muted;
1152 
1153 
1166 - (int)getPlayoutDeviceMute:(bool *)muted;
1167 
1168 
1181 - (int)setRecordDeviceMute:(bool)muted;
1182 
1183 
1196 - (int)getRecordDeviceMute:(bool *)muted;
1197 
1198 
1199 #pragma mark -- CAMERA & TORCH SETTINGS
1200 
1215 - (BOOL)isCameraZoomSupported;
1216 
1235 - (BOOL)isCameraTorchSupported;
1236 
1253 - (BOOL)isCameraFocusSupported;
1254 
1272 
1293 - (int)setCameraExposurePosition:(CGPoint)positionInView;
1294 
1313 - (int)setCameraTorchOn:(BOOL)on;
1314 
1327 - (BOOL)isCameraTorchOn;
1328 
1349 - (int)setCameraZoomFactor:(float)factor;
1350 
1367  - (float)maxCameraZoomScale;
1368 
1391 - (int)setCameraFocusPositionX:(float)focusX Y:(float)focusY;
1392 
1418  - (int)setCameraCaptureConfig:(NERtcCameraCaptureConfiguration *)config;
1419 
1469 - (int)setCameraCaptureConfig:(NERtcCameraCaptureConfiguration *)config streamType:(NERtcStreamChannelType)streamType;
1470 
1471 #pragma mark -- AUDIO MIXING
1472 
1501 - (int)startAudioMixingWithOption:(NERtcCreateAudioMixingOption *)option;
1502 
1515 - (int)stopAudioMixing;
1516 
1529 - (int)pauseAudioMixing;
1530 
1541 - (int)resumeAudioMixing;
1542 
1555 - (int)setAudioMixingSendVolume:(uint32_t)volume;
1556 
1571 - (int)getAudioMixingSendVolume:(uint32_t *)volume;
1572 
1587 - (int)setAudioMixingPlaybackVolume:(uint32_t)volume;
1588 
1603 - (int)getAudioMixingPlaybackVolume:(uint32_t *)volume;
1604 
1619 - (int)getAudioMixingDuration:(uint64_t *)duration;
1620 
1635 - (int)getAudioMixingCurrentPosition:(uint64_t *)position;
1636 
1651 - (int)setAudioMixingPosition:(uint64_t)position;
1652 
1653 #pragma mark -- AUDIO EFFECT
1682 - (int)playEffectWitdId:(uint32_t)effectId effectOption:(NERtcCreateAudioEffectOption *)option;
1683 
1700 - (int)stopEffectWitdId:(uint32_t)effectId;
1701 
1716 - (int)stopAllEffects;
1717 
1732 - (int)pauseEffectWitdId:(uint32_t)effectId;
1733 
1748 - (int)resumeEffectWitdId:(uint32_t)effectId;
1749 
1762 - (int)pauseAllEffects;
1763 
1776 - (int)resumeAllEffects;
1777 
1794 - (int)setEffectSendVolumeWithId:(uint32_t)effectId volume:(uint32_t)volume;
1795 
1812 - (int)getEffectSendVolumeWithId:(uint32_t)effectId volume:(uint32_t *)volume;
1813 
1830 - (int)setEffectPlaybackVolumeWithId:(uint32_t)effectId volume:(uint32_t)volume;
1831 
1846 - (int)getEffectPlaybackVolumeWithId:(uint32_t)effectId volume:(uint32_t *)volume;
1847 
1868 - (int)getEffectDurationWithId:(uint32_t)effectId duration:(uint64_t *)duration;
1869 
1890 - (int)getEffectCurrentPositionWithId:(uint32_t)effectId position:(uint64_t *)position;
1891 
1892 #pragma mark -- In-ear monitoring
1915 - (int)enableEarback:(BOOL)enabled volume:(uint32_t)volume;
1916 
1929 - (int)setEarbackVolume:(uint32_t)volume;
1930 
1931 #pragma mark -- audio recording
1968 - (int)startAudioRecording:(NSString *)filePath sampleRate:(int)sampleRate quality:(NERtcAudioRecordingQuality)quality;
1969 
2015 - (int)startAudioRecordingWithConfig:(NERtcAudioRecordingConfiguration *_Nonnull)config;
2016 
2031 - (int)stopAudioRecording;
2032 
2033 #pragma mark --External Audio
2065 - (int)setExternalAudioSource:(BOOL)enabled sampleRate:(int32_t)sampleRate channels:(int32_t)channels;
2066 
2092 - (int)pushExternalAudioFrame:(NERtcAudioFrame *)frame;
2093 
2094 
2127  - (int)setExternalAudioRender:(BOOL)enabled sampleRate:(int32_t)sampleRate channels:(int32_t)channels;
2128 
2154 - (int)pullExternalAudioFrame:(void *_Nonnull)data length:(int)len;
2155 
2156 #pragma mark -- Media Statistic Observer
2157 
2170 - (int)addEngineMediaStatsObserver:(id<NERtcEngineMediaStatsObserver>)observer;
2171 
2184 - (int)removeEngineMediaStatsObserver:(id<NERtcEngineMediaStatsObserver>)observer;
2185 
2197 
2198 
2199 #pragma mark -- Live Stream
2224 - (int)addLiveStreamTask:(NERtcLiveStreamTaskInfo *)taskInfo compeltion:(NERtcLiveStreamCompletion)completion;
2225 
2246 - (int)updateLiveStreamTask:(NERtcLiveStreamTaskInfo *)taskInfo compeltion:(NERtcLiveStreamCompletion)completion;
2247 
2268 - (int)removeLiveStreamTask:(NSString *)taskId compeltion:(NERtcLiveStreamCompletion)completion;
2269 
2270 #pragma mark -- Audio Frame Observer
2293 - (int)setRecordingAudioFrameParameters:(nullable NERtcAudioFrameRequestFormat *)format;
2294 
2295 
2318 - (int)setPlaybackAudioFrameParameters:(nullable NERtcAudioFrameRequestFormat *)format;
2319 
2342 - (int)setMixedAudioFrameParameters:(nullable NERtcAudioFrameRequestFormat *)format;
2343 
2362 - (int)setAudioFrameObserver:(nullable id<NERtcEngineAudioFrameObserver>)observer;
2363 
2364 
2365 #pragma mark -- Volume indication
2384 - (int)enableAudioVolumeIndication:(BOOL)enable interval:(uint64_t)interval;
2385 
2420 - (int)enableAudioVolumeIndication:(BOOL)enable interval:(uint64_t)interval vad:(BOOL)enableVad;
2421 
2422 
2423 #pragma mark - Signal Volume
2447 - (int)adjustRecordingSignalVolume:(uint32_t)volume;
2448 
2470 - (int)adjustPlaybackSignalVolume:(uint32_t)volume;
2471 
2500 - (int)adjustUserPlaybackSignalVolume:(uint32_t)volume forUserID:(uint64_t)userID;
2501 
2502 #pragma mark - voice effects
2503 
2524 - (int)setLocalVoicePitch:(double)pitch;
2525 
2542 - (int)setLocalVoiceEqualizationOfBandFrequency:(NERtcAudioEqualizationBandFrequency)bandFrequency withGain:(NSInteger)gain;
2543 
2560 - (int)setVoiceBeautifierPreset:(NERtcVoiceBeautifierType)type;
2561 
2583 - (int)setAudioEffectPreset:(NERtcVoiceChangerType)type;
2584 
2605 - (int)setLocalVoiceReverbParam:(NERtcReverbParam *)param;
2606 
2607 #pragma mark - waterMark
2608 
2631 - (int)setLocalCanvasWatermarkConfigs:(nullable NERtcCanvasWatermarkConfig *)config
2632  withStreamType:(NERtcStreamChannelType)type;
2633 
2658 - (int)setRemoteCanvasWatermarkConfigs:(nullable NERtcCanvasWatermarkConfig *)config
2659  forUserID:(uint64_t)userID
2660  withStreamType:(NERtcStreamChannelType)type;
2661 
2684 - (int)setLocalVideoWatermarkConfigs:(nullable NERtcVideoWatermarkConfig *)config
2685  withStreamType:(NERtcStreamChannelType)type;
2686 
2687 #pragma mark - snapshot
2714 - (int)takeLocalSnapshot:(NERtcStreamChannelType)streamType callback:(NERtcTakeSnapshotCallback)callback;
2715 
2742 - (int)takeRemoteSnapshot:(NERtcStreamChannelType)streamType forUserID:(uint64_t)userID callback:(NERtcTakeSnapshotCallback)callback;
2743 
2744 #pragma mark -- Other
2759 - (int)uploadSdkInfo;
2760 
2761 #pragma mark - SEI
2762 
2799 - (int)sendSEIMsg:(NSData *)data streamChannelType:(NERtcStreamChannelType)type;
2800 
2835 - (int)sendSEIMsg:(NSData *)data;
2836 
2837 #pragma mark- MediaRealy
2838 
2865 - (int)startChannelMediaRelay:(NERtcChannelMediaRelayConfiguration *_Nonnull)config;
2866 
2891 - (int)updateChannelMediaRelay:(NERtcChannelMediaRelayConfiguration *_Nonnull)config;
2892 
2909 - (int)stopChannelMediaRelay;
2910 
2936 - (int)enableSuperResolution:(BOOL)enabled;
2937 
2968 - (int)enableEncryption:(BOOL)enable config:(NERtcEncryptionConfig *)config;
2969 
2970 #pragma mark - NetworkQualiityTest
2971 
3001 - (int)startLastmileProbeTest:(NERtcLastmileProbeConfig *_Nullable)config;
3002 
3019 - (int)stopLastmileProbeTest;
3020 
3021 #pragma mark -
3035 - (nullable NERtcChannel *)createChannel:(NSString *)channelName;
3036 
3037 #pragma mark - Video Effect
3038 
3071 - (int)enableVideoCorrection:(BOOL)enable;
3072 
3099 - (int)setVideoCorrectionConfig:(nullable NERtcVideoCorrectionConfiguration *)config;
3100 
3148 - (int)enableVirtualBackground:(BOOL)enable backData:(NERtcVirtualBackgroundSource *_Nullable)backData;
3149 
3150 #pragma mark - Cloud Proxy
3151 
3172 - (int)setCloudProxy:(NERtcTransportType)proxyType;
3173 
3196 - (void)setStreamAlignmentProperty:(BOOL)enable;
3197 
3212 - (int64_t)getNtpTimeOffset;
3213 
3214 @end
3215 
3216 NS_ASSUME_NONNULL_END
3217 
3218 #endif /* INERtcEngineEx_h */
void(^ NERtcTakeSnapshotCallback)(int errorCode, UIImage *_Nullable image)
截图结果 block 回调。
Definition: INERtcEngine.h:60
void(^ NERtcLiveStreamCompletion)(NSString *taskId, kNERtcLiveStreamError errorCode)
互动直播推流 block。
Definition: INERtcEngine.h:46
NERtcAudioEqualizationBandFrequency
频谱子带索引 预设值。
Definition: NERtcEngineEnum.h:1820
NERtcAudioDumpType
音频dump类型
Definition: NERtcEngineEnum.h:1622
NERtcVoiceChangerType
变声 预设值。
Definition: NERtcEngineEnum.h:1921
NERtcVideoRotationMode
视频旋转模式。
Definition: NERtcEngineEnum.h:712
NERtcAudioRecordingQuality
录音音质。
Definition: NERtcEngineEnum.h:1698
NERtcCameraPosition
指定的摄像头位置。
Definition: NERtcEngineEnum.h:1322
NERtcRemoteVideoStreamType
远端视频流类型。
Definition: NERtcEngineEnum.h:598
NERtcStreamFallbackOptions
Definition: NERtcEngineEnum.h:1654
NERtcStreamChannelType
SEI发送的流通道类型。
Definition: NERtcEngineEnum.h:998
NERtcAudioSessionOperationRestriction
音频会话控制权限。 SDK 对 Audio Session 的控制权限。
Definition: NERtcEngineEnum.h:1575
NERtcTransportType
云代理模式。
Definition: NERtcEngineEnum.h:3088
NERtcVoiceBeautifierType
美声 预设值。
Definition: NERtcEngineEnum.h:2013
NERtcVideoRenderScaleMode
视频渲染缩放模式。
Definition: NERtcEngineEnum.h:674
NERtcMediaPriorityType
Definition: NERtcEngineEnum.h:1633
NERtcAudioStreamType
音频流类型,目前同时支持音频两路流:主流和辅流
Definition: NERtcEngineEnum.h:1608
音频帧。
Definition: NERtcEngineBase.h:1428
音频原始数据回调格式(默认不设置)。
Definition: NERtcEngineBase.h:1315
Definition: NERtcEngineBase.h:814
摄像头采集配置。
Definition: NERtcEngineBase.h:449
画布水印设置。 同时设置文字、时间戳或图片水印时,如果不同类型的水印位置有重叠,会按照图片、文本、时间戳的顺序进行图层覆盖。
Definition: NERtcEngineBase.h:1893
Definition: NERtcChannel.h:14
Definition: NERtcEngineBase.h:1634
Options for creating audio effects
Definition: NERtcEngineBase.h:738
Options for creating mixing audios
Definition: NERtcEngineBase.h:627
配置媒体流加密模式和密钥。
Definition: NERtcEngineBase.h:2292
Last mile 网络探测配置。
Definition: NERtcEngineBase.h:2462
直播推流任务的配置。
Definition: NERtcEngineBase.h:1219
混响参数
Definition: NERtcEngineBase.h:2764
视频画布设置。
Definition: NERtcEngineBase.h:261
视频图像畸变矫正相关设置。
Definition: NERtcEngineBase.h:2663
视频帧信息。
Definition: NERtcEngineBase.h:1518
本地辅流发送配置。
Definition: NERtcEngineBase.h:609
视频水印设置,目前支持三种类型的水印,但只能其中选择一种水印生效。
Definition: NERtcEngineBase.h:2238
自定义背景图像。
Definition: NERtcEngineBase.h:2700
NERtcEngine 的常用接口。
Definition: INERtcEngine.h:75
NERtcEngine 扩展接口
Definition: INERtcEngineEx.h:25
BOOL isCameraZoomSupported()
检测设备当前使用的摄像头是否支持缩放功能。 该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。
int stopPreview()
停止视频预览。
int stopAudioRecording()
停止客户端录音。 本端离开房间时自动停止录音,您也可以在通话中随时调用 stopAudioRecording 手动停止录音。
int stopAudioDump()
结束记录音频 dump。
int startPreview()
开启视频预览。 该方法用于在进入房间前启动本地视频预览。调用该 API 前,必须调用 setupLocalVideoCanvas 设置视频画布。
BOOL isCameraFocusSupported()
检测设备是否支持手动对焦功能。
int64_t getNtpTimeOffset()
获取本地系统时间与服务端时间差值。 可以用于做时间对齐,通过 (毫秒级系统时间 - offset) 可能得到当前服务端时间。
int stopChannelMediaRelay()
停止跨房间媒体流转发。 主播离开房间时,跨房间媒体流转发自动停止,您也可以在需要的时候随时调用 stopChannelMediaRelay 方法,此时主播会退出所有目标房间。
BOOL isCameraTorchOn()
查询设备是否开启了闪光灯。
BOOL isCameraTorchSupported()
检测设备是否支持闪光灯常亮。
int pauseAudioMixing()
暂停播放音乐文件及混音。 该方法暂停播放伴奏。请在房间内调用该方法。
int uploadSdkInfo()
上传 SDK 信息。 上传的信息包括 log 和 Audio dump 等文件。
int stopScreenCapture()
关闭辅流形式的屏幕共享。 如果您在加入房间后调用该方法关闭辅流,调用成功后,远端触发 onNERtcEngineUserSubStreamDidStop 回调。
int stopLastmileProbeTest()
停止通话前网络质量探测。
BOOL isCameraExposurePositionSupported()
检测设备是否支持手动曝光功能。
int startAudioDump()
开始记录音频 dump。 音频 dump 可用于分析音频问题。
int resumeAllEffects()
恢复播放所有音效文件。 请在加入房间后调用该方法。
int cleanupEngineMediaStatsObserver()
清除全部媒体统计信息观测器。
int stopAudioMixing()
停止播放音乐文件及混音。 该方法停止播放伴奏。请在房间内调用该方法。
int resumeAudioMixing()
该方法恢复混音,继续播放伴奏。请在房间内调用该方法。
float maxCameraZoomScale()
获取摄像头支持最大缩放比例。
int pauseAllEffects()
暂停播放所有音效文件。 请在加入房间后调用该方法。
int stopAllEffects()
停止播放所有音效文件。
音频数据回调 如果需要对音频数据做处理,需要实现这个 protocol
Definition: NERtcEngineDelegate.h:1161
统计信息回调
Definition: NERtcEngineStatistics.h:924