NERtc iOS SDK  V4.6.420
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 #pragma clang diagnostic push
16 #pragma clang diagnostic ignored "-Wdocumentation"
17 
18 
19 NS_ASSUME_NONNULL_BEGIN
20 
30 
72 - (int)startPushStreaming:(NERtcPushStreamingConfig *)config;
73 
95 - (int)stopPushStreaming;
96 
143 - (int)enableDualStreamMode:(BOOL)enable;
144 
194 - (int)setLocalMediaPriority:(NERtcMediaPriorityType)priority preemptive:(BOOL)preemptive;
195 
196 
221 - (int)setLocalPublishFallbackOption:(NERtcStreamFallbackOptions)option;
222 
247 - (int)setRemoteSubscribeFallbackOption:(NERtcStreamFallbackOptions)option;
248 
298 - (int)muteLocalAudio:(BOOL)muted;
299 
355 - (int)subscribeRemoteAudio:(BOOL)subscribe forUserID:(uint64_t)userID;
356 
404 - (int)subscribeAllRemoteAudio:(BOOL)subscribe;
405 
434 - (int)setAudioSubscribeOnlyBy:(NSArray<NSNumber*> *)uidArray;
435 
460 - (int)enableLocalSubStreamAudio:(BOOL)enabled;
461 
517 - (int)subscribeRemoteSubStreamAudio:(BOOL)subscribe forUserID:(uint64_t)userID;
518 
543 - (int)muteLocalSubStreamAudio:(BOOL)muted;
544 
545 
657 - (int)setExternalSubStreamAudioSource:(BOOL)enabled sampleRate:(int32_t)sampleRate channels:(int32_t)channels;
658 
687 - (int)pushExternalSubStreamAudioFrame:(NERtcAudioFrame *)frame;
688 
750  - (int)subscribeRemoteVideo:(BOOL)subscribe forUserID:(uint64_t)userID streamType:(NERtcRemoteVideoStreamType)streamType;
751 
794 - (int)startPreview;
795 
846 - (int)startPreview:(NERtcStreamChannelType)streamType;
847 
878 - (int)stopPreview;
879 
917 - (int)stopPreview:(NERtcStreamChannelType)streamType;
918 
959 - (int)setLocalRenderScaleMode:(NERtcVideoRenderScaleMode)mode;
960 
1009 - (int)setRemoteRenderScaleMode:(NERtcVideoRenderScaleMode)mode forUserID:(uint64_t)userID;
1010 
1035  - (int)setVideoRotationMode:(NERtcVideoRotationMode)rotationMode;
1036 
1088  - (int)muteLocalVideo:(BOOL)muted;
1089 
1140  - (int)muteLocalVideo:(BOOL)muted streamType:(NERtcStreamChannelType)streamType;
1141 
1190 - (int)setLoudspeakerMode:(bool)enable;
1191 
1206 - (int)getLoudspeakerMode:(bool *)enabled;
1207 
1208 
1221 - (int)startAudioDump;
1222 
1237 - (int)startAudioDumpWithType:(NERtcAudioDumpType)type;
1238 
1261 - (int)stopAudioDump;
1262 
1297 - (int)setRemoteHighPriorityAudioStream:(BOOL)enable forUserID:(uint64_t)userID streamType:(NERtcAudioStreamType)streamType;
1298 
1313 - (int)switchCameraWithPosition:(NERtcCameraPosition)position;
1314 
1315 
1354 - (int)updatePermissionKey:(NSString *)key;
1355 #pragma mark - External Video Input
1356 
1420 - (int)setExternalVideoSource:(BOOL)enable isScreen:(BOOL)isScreen;
1421 
1491 - (int)setExternalVideoSource:(BOOL)enable streamType:(NERtcStreamChannelType)streamType;
1492 
1517 - (int)pushExternalVideoFrame:(NERtcVideoFrame*)frame;
1518 
1519 #pragma mark - Sub Stream
1520 
1568 - (int)setupLocalSubStreamVideoCanvas:(nullable NERtcVideoCanvas *)canvas;
1569 
1619 - (int)startScreenCapture:(NERtcVideoSubStreamEncodeConfiguration *)config;
1620 
1648 - (int)stopScreenCapture;
1649 
1695 - (int)setLocalRenderSubStreamScaleMode:(NERtcVideoRenderScaleMode)mode;
1696 
1760 - (int)setupRemoteSubStreamVideoCanvas:(nullable NERtcVideoCanvas *)canvas forUserID:(uint64_t)userID;
1761 
1815 - (int)subscribeRemoteSubStreamVideo:(BOOL)subscribe forUserID:(uint64_t)userID;
1816 
1867 - (int)setRemoteRenderSubStreamVideoScaleMode:(NERtcVideoRenderScaleMode)mode forUserID:(uint64_t)userID;
1868 
1869 #pragma mark - Audio Session
1870 
1891 - (int)setAudioSessionOperationRestriction:(NERtcAudioSessionOperationRestriction)restriction;
1892 
1893 #pragma mark - Audio Device Manager
1894 
1935 - (int)setPlayoutDeviceMute:(bool)muted;
1936 
1937 
1950 - (int)getPlayoutDeviceMute:(bool *)muted;
1951 
1952 
1998 - (int)setRecordDeviceMute:(bool)muted;
1999 
2000 
2013 - (int)getRecordDeviceMute:(bool *)muted;
2014 
2015 
2016 #pragma mark - Camera & Torch Settings
2017 
2032 - (BOOL)isCameraZoomSupported;
2033 
2052 - (BOOL)isCameraTorchSupported;
2053 
2070 - (BOOL)isCameraFocusSupported;
2071 
2089 
2138 - (int)setCameraExposurePosition:(CGPoint)positionInView;
2139 
2158 - (int)setCameraTorchOn:(BOOL)on;
2159 
2172 - (BOOL)isCameraTorchOn;
2173 
2220 - (int)setCameraZoomFactor:(float)factor;
2221 
2238  - (float)maxCameraZoomScale;
2239 
2293 - (int)setCameraFocusPositionX:(float)focusX Y:(float)focusY;
2294 
2350  - (int)setCameraCaptureConfig:(NERtcCameraCaptureConfiguration *)config;
2351 
2401 - (int)setCameraCaptureConfig:(NERtcCameraCaptureConfiguration *)config streamType:(NERtcStreamChannelType)streamType;
2402 
2403 #pragma mark - Audio Mixing
2404 
2464 - (int)startAudioMixingWithOption:(NERtcCreateAudioMixingOption *)option;
2465 
2489 - (int)stopAudioMixing;
2490 
2517 - (int)pauseAudioMixing;
2518 
2544 - (int)resumeAudioMixing;
2545 
2558 - (int)setAudioMixingSendVolume:(uint32_t)volume;
2559 
2574 - (int)getAudioMixingSendVolume:(uint32_t *)volume;
2575 
2590 - (int)setAudioMixingPlaybackVolume:(uint32_t)volume;
2591 
2606 - (int)getAudioMixingPlaybackVolume:(uint32_t *)volume;
2607 
2622 - (int)getAudioMixingDuration:(uint64_t *)duration;
2623 
2638 - (int)getAudioMixingCurrentPosition:(uint64_t *)position;
2639 
2654 - (int)setAudioMixingPosition:(uint64_t)position;
2655 
2697 - (int)setAudioMixingPitch:(int32_t)pitch;
2698 
2719 - (int)getAudioMixingPitch:(int32_t *)pitch;
2720 
2721 #pragma mark - Audio Effect
2788 - (int)playEffectWitdId:(uint32_t)effectId effectOption:(NERtcCreateAudioEffectOption *)option;
2789 
2829 - (int)stopEffectWitdId:(uint32_t)effectId;
2830 
2857 - (int)stopAllEffects;
2858 
2873 - (int)pauseEffectWitdId:(uint32_t)effectId;
2874 
2889 - (int)resumeEffectWitdId:(uint32_t)effectId;
2890 
2903 - (int)pauseAllEffects;
2904 
2917 - (int)resumeAllEffects;
2918 
2935 - (int)setEffectSendVolumeWithId:(uint32_t)effectId volume:(uint32_t)volume;
2936 
2953 - (int)getEffectSendVolumeWithId:(uint32_t)effectId volume:(uint32_t *)volume;
2954 
2971 - (int)setEffectPlaybackVolumeWithId:(uint32_t)effectId volume:(uint32_t)volume;
2972 
2987 - (int)getEffectPlaybackVolumeWithId:(uint32_t)effectId volume:(uint32_t *)volume;
2988 
3009 - (int)getEffectDurationWithId:(uint32_t)effectId duration:(uint64_t *)duration;
3010 
3031 - (int)getEffectCurrentPositionWithId:(uint32_t)effectId position:(uint64_t *)position;
3032 
3073 - (int)setEffectPositionWithId:(uint32_t)effectId position:(uint64_t)position;
3074 
3121 - (int)setEffectPitchWithId:(uint32_t)effectId pitch:(int32_t)pitch;
3122 
3159 - (int)getEffectPitchWithId:(uint32_t)effectId pitch:(int32_t *)pitch;
3160 
3161 #pragma mark - In-ear monitoring
3213 - (int)enableEarback:(BOOL)enabled volume:(uint32_t)volume;
3214 
3227 - (int)setEarbackVolume:(uint32_t)volume;
3228 
3229 #pragma mark - Audio Recording
3294 - (int)startAudioRecording:(NSString *)filePath sampleRate:(int)sampleRate quality:(NERtcAudioRecordingQuality)quality;
3295 
3341 - (int)startAudioRecordingWithConfig:(NERtcAudioRecordingConfiguration *_Nonnull)config;
3342 
3370 - (int)stopAudioRecording;
3371 
3372 #pragma mark - External Audio
3439 - (int)setExternalAudioSource:(BOOL)enabled sampleRate:(int32_t)sampleRate channels:(int32_t)channels;
3440 
3466 - (int)pushExternalAudioFrame:(NERtcAudioFrame *)frame;
3467 
3468 
3532  - (int)setExternalAudioRender:(BOOL)enabled sampleRate:(int32_t)sampleRate channels:(int32_t)channels;
3533 
3559 - (int)pullExternalAudioFrame:(void *_Nonnull)data length:(int)len;
3560 
3561 #pragma mark - Media Statistic Observer
3562 
3575 - (int)addEngineMediaStatsObserver:(id<NERtcEngineMediaStatsObserver>)observer;
3576 
3589 - (int)removeEngineMediaStatsObserver:(id<NERtcEngineMediaStatsObserver>)observer;
3590 
3602 
3603 
3604 #pragma mark - Live Stream
3663 - (int)addLiveStreamTask:(NERtcLiveStreamTaskInfo *)taskInfo compeltion:(NERtcLiveStreamCompletion)completion;
3664 
3718 - (int)updateLiveStreamTask:(NERtcLiveStreamTaskInfo *)taskInfo compeltion:(NERtcLiveStreamCompletion)completion;
3719 
3773 - (int)removeLiveStreamTask:(NSString *)taskId compeltion:(NERtcLiveStreamCompletion)completion;
3774 
3775 #pragma mark - Audio Frame Observer
3826 - (int)setRecordingAudioFrameParameters:(nullable NERtcAudioFrameRequestFormat *)format;
3827 
3828 
3878 - (int)setPlaybackAudioFrameParameters:(nullable NERtcAudioFrameRequestFormat *)format;
3879 
3930 - (int)setMixedAudioFrameParameters:(nullable NERtcAudioFrameRequestFormat *)format;
3931 
3976 - (int)setAudioFrameObserver:(nullable id<NERtcEngineAudioFrameObserver>)observer;
3977 
3978 
4014 - (int)setVideoFrameObserver:(nullable id<NERtcEngineVideoFrameObserver>)videoframeObserver;
4015 
4016 
4017 #pragma mark - Volume Indication
4067 - (int)enableAudioVolumeIndication:(BOOL)enable interval:(uint64_t)interval;
4068 
4129 - (int)enableAudioVolumeIndication:(BOOL)enable interval:(uint64_t)interval vad:(BOOL)enableVad;
4130 
4131 
4132 #pragma mark - Signal Volume
4175 - (int)adjustRecordingSignalVolume:(uint32_t)volume;
4176 
4220 - (int)adjustPlaybackSignalVolume:(uint32_t)volume;
4221 
4276 - (int)adjustUserPlaybackSignalVolume:(uint32_t)volume forUserID:(uint64_t)userID;
4277 
4278 #pragma mark - Voice Effect
4279 
4300 - (int)setLocalVoicePitch:(double)pitch;
4301 
4318 - (int)setLocalVoiceEqualizationOfBandFrequency:(NERtcAudioEqualizationBandFrequency)bandFrequency withGain:(NSInteger)gain;
4319 
4360 - (int)setVoiceBeautifierPreset:(NERtcVoiceBeautifierType)type;
4361 
4404 - (int)setAudioEffectPreset:(NERtcVoiceChangerType)type;
4405 
4426 - (int)setLocalVoiceReverbParam:(NERtcReverbParam *)param;
4427 
4428 #pragma mark - WaterMark
4429 
4452 - (int)setLocalCanvasWatermarkConfigs:(nullable NERtcCanvasWatermarkConfig *)config
4453  withStreamType:(NERtcStreamChannelType)type;
4454 
4511 - (int)setRemoteCanvasWatermarkConfigs:(nullable NERtcCanvasWatermarkConfig *)config
4512  forUserID:(uint64_t)userID
4513  withStreamType:(NERtcStreamChannelType)type;
4514 
4537 - (int)setLocalVideoWatermarkConfigs:(nullable NERtcVideoWatermarkConfig *)config
4538  withStreamType:(NERtcStreamChannelType)type;
4539 
4540 #pragma mark - Snapshot
4567 - (int)takeLocalSnapshot:(NERtcStreamChannelType)streamType callback:(NERtcTakeSnapshotCallback)callback;
4568 
4595 - (int)takeRemoteSnapshot:(NERtcStreamChannelType)streamType forUserID:(uint64_t)userID callback:(NERtcTakeSnapshotCallback)callback;
4596 
4597 #pragma mark - Other
4612 - (int)uploadSdkInfo;
4613 
4623 - (int)reportCustomEvent:(NSString *)eventName
4624  customIdentify:(NSString *)customIdentify
4625  param:(NSDictionary *)param;
4626 
4627 #pragma mark - SEI
4628 
4665 - (int)sendSEIMsg:(NSData *)data streamChannelType:(NERtcStreamChannelType)type;
4666 
4701 - (int)sendSEIMsg:(NSData *)data;
4702 
4703 #pragma mark- MediaRelay
4704 
4731 - (int)startChannelMediaRelay:(NERtcChannelMediaRelayConfiguration *_Nonnull)config;
4732 
4757 - (int)updateChannelMediaRelay:(NERtcChannelMediaRelayConfiguration *_Nonnull)config;
4758 
4790 - (int)stopChannelMediaRelay;
4791 
4817 - (int)enableSuperResolution:(BOOL)enabled;
4818 
4849 - (int)enableEncryption:(BOOL)enable config:(NERtcEncryptionConfig *)config;
4850 
4851 #pragma mark - NetworkQualiityTest
4852 
4882 - (int)startLastmileProbeTest:(NERtcLastmileProbeConfig *_Nullable)config;
4883 
4900 - (int)stopLastmileProbeTest;
4901 
4902 #pragma mark -
4916 - (nullable NERtcChannel *)createChannel:(NSString *)channelName;
4917 
4918 #pragma mark - Video Effect
4919 
4952 - (int)enableVideoCorrection:(BOOL)enable;
4953 
4980 - (int)setVideoCorrectionConfig:(nullable NERtcVideoCorrectionConfiguration *)config;
4981 
5029 - (int)enableVirtualBackground:(BOOL)enable backData:(NERtcVirtualBackgroundSource *_Nullable)backData;
5030 
5031 #pragma mark - Cloud Proxy
5032 
5053 - (int)setCloudProxy:(NERtcTransportType)proxyType;
5054 
5096 - (void)setStreamAlignmentProperty:(BOOL)enable;
5097 
5112 - (int64_t)getNtpTimeOffset;
5113 
5114 #pragma mark - encoder & decoder
5115 
5153 - (int)setPreDecodeObserver:(nullable id<NERtcEnginePreDecodeObserver>)observer;
5154 
5155 
5193 - (int)setVideoEncoderQosObserver:(nullable id<NERtcEngineVideoEncoderQosObserver>)encoderQosObserver;
5194 
5242 - (int)pushExternalAudioEncodedFrame:(NERtcAudioEncodedFrame *)encodedAudioFrame;
5243 
5291 - (int)pushExternalSubStreamAudioEncodedFrame:(NERtcAudioEncodedFrame *)encodedAudioFrame;
5292 
5346 - (int)pushExternalVideoEncodedFrame:(NERtcVideoEncodedFrame *)encodedVideoFrame;
5347 
5401 - (int)pushExternalSubStreamVideoEncodedFrame:(NERtcVideoEncodedFrame *)encodedVideoFrame;
5402 
5403 
5404 @end
5405 
5406 NS_ASSUME_NONNULL_END
5407 
5408 #pragma clang diagnostic pop
5409 
5410 #endif /* INERtcEngineEx_h */
void(^ NERtcTakeSnapshotCallback)(int errorCode, UIImage *_Nullable image)
截图结果 block 回调。
Definition: INERtcEngine.h:64
void(^ NERtcLiveStreamCompletion)(NSString *taskId, kNERtcLiveStreamError errorCode)
互动直播推流 block。
Definition: INERtcEngine.h:50
NERtcAudioEqualizationBandFrequency
频谱子带索引 预设值。
Definition: NERtcEngineEnum.h:1893
NERtcAudioDumpType
音频dump类型
Definition: NERtcEngineEnum.h:1651
NERtcVoiceChangerType
变声 预设值。
Definition: NERtcEngineEnum.h:1994
NERtcVideoRotationMode
视频旋转模式。
Definition: NERtcEngineEnum.h:741
NERtcAudioRecordingQuality
录音音质。
Definition: NERtcEngineEnum.h:1727
NERtcCameraPosition
指定的摄像头位置。
Definition: NERtcEngineEnum.h:1351
NERtcRemoteVideoStreamType
远端视频流类型。
Definition: NERtcEngineEnum.h:627
NERtcStreamFallbackOptions
Definition: NERtcEngineEnum.h:1683
NERtcStreamChannelType
SEI发送的流通道类型。
Definition: NERtcEngineEnum.h:1027
NERtcAudioSessionOperationRestriction
音频会话控制权限。 SDK 对 Audio Session 的控制权限。
Definition: NERtcEngineEnum.h:1604
NERtcTransportType
云代理模式。
Definition: NERtcEngineEnum.h:3161
NERtcVoiceBeautifierType
美声 预设值。
Definition: NERtcEngineEnum.h:2086
NERtcVideoRenderScaleMode
视频渲染缩放模式。
Definition: NERtcEngineEnum.h:703
NERtcMediaPriorityType
Definition: NERtcEngineEnum.h:1662
NERtcAudioStreamType
音频流类型,目前同时支持音频两路流:主流和辅流
Definition: NERtcEngineEnum.h:1637
编码好的音频数据
Definition: NERtcEngineBase.h:3097
音频帧。
Definition: NERtcEngineBase.h:1480
音频原始数据回调格式(默认不设置)。
Definition: NERtcEngineBase.h:1367
Definition: NERtcEngineBase.h:866
摄像头采集配置。
Definition: NERtcEngineBase.h:473
画布水印设置。 同时设置文字、时间戳或图片水印时,如果不同类型的水印位置有重叠,会按照图片、文本、时间戳的顺序进行图层覆盖。
Definition: NERtcEngineBase.h:1969
Definition: NERtcChannel.h:14
Definition: NERtcEngineBase.h:1710
Options for creating audio effects
Definition: NERtcEngineBase.h:769
Options for creating mixing audios
Definition: NERtcEngineBase.h:651
配置媒体流加密模式和密钥。
Definition: NERtcEngineBase.h:2368
Last mile 网络探测配置。
Definition: NERtcEngineBase.h:2538
直播推流任务的配置。
Definition: NERtcEngineBase.h:1271
Definition: NERtcEngineBase.h:3175
混响参数
Definition: NERtcEngineBase.h:2840
视频画布设置。
Definition: NERtcEngineBase.h:277
视频图像畸变矫正相关设置。
Definition: NERtcEngineBase.h:2739
Definition: NERtcEngineBase.h:3055
视频帧信息。
Definition: NERtcEngineBase.h:1570
本地辅流发送配置。
Definition: NERtcEngineBase.h:633
视频水印设置,目前支持三种类型的水印,但只能其中选择一种水印生效。
Definition: NERtcEngineBase.h:2314
自定义背景图像。
Definition: NERtcEngineBase.h:2776
NERtcEngine 的常用接口。
Definition: INERtcEngine.h:80
NERtcEngine 扩展接口
Definition: INERtcEngineEx.h:29
BOOL isCameraZoomSupported()
检测设备当前使用的摄像头是否支持缩放功能。 该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。
int stopPushStreaming()
/* 停止推流。 通过此接口可以停止当前正在进行的rtmp推流
int stopPreview()
停止视频预览。 通过此接口可以实现在预览本地视频后关闭预览。
int stopAudioRecording()
停止客户端本地录音。 本端用户离开房间时会自动停止本地录音,也可以通过此接口实现在通话过程中随时停止录音。
int stopAudioDump()
结束记录音频 dump。
int startPreview()
开启视频预览。 通过本接口可以实现在加入房间前启动本地视频预览,支持预览本地摄像头或外部输入视频。
BOOL isCameraFocusSupported()
检测设备是否支持手动对焦功能。
int64_t getNtpTimeOffset()
获取本地系统时间与服务端时间差值。 可以用于做时间对齐,通过 (毫秒级系统时间 - offset) 可能得到当前服务端时间。
int stopChannelMediaRelay()
停止跨房间媒体流转发。 通常在主播离开房间时,跨房间媒体流转发会自动停止;您也可以根据需要随时调用该方法,此时主播会退出所有目标房间。
BOOL isCameraTorchOn()
查询设备是否开启了闪光灯。
BOOL isCameraTorchSupported()
检测设备是否支持闪光灯常亮。
int pauseAudioMixing()
暂停伴音。 通过此接口可以实现暂停播放伴音文件。
int uploadSdkInfo()
上传 SDK 信息。 上传的信息包括 log 和 Audio dump 等文件。
int stopScreenCapture()
关闭屏幕共享。 通过此接口可以实现关闭屏幕共享辅流。
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:1518
统计信息回调
Definition: NERtcEngineStatistics.h:928
Definition: NERtcEngineDelegate.h:623
Definition: NERtcEngineDelegate.h:651
本地视频数据采集回调 如果需要对采集数据做美颜等处理,需要实现这个 protocol。
Definition: NERtcEngineDelegate.h:509