NERtc iOS SDK  V5.3.1
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 
77 - (int)enableDualStreamMode:(BOOL)enable;
78 
128 - (int)setLocalMediaPriority:(NERtcMediaPriorityType)priority preemptive:(BOOL)preemptive;
129 
130 
155 - (int)setLocalPublishFallbackOption:(NERtcStreamFallbackOptions)option;
156 
181 - (int)setRemoteSubscribeFallbackOption:(NERtcStreamFallbackOptions)option;
182 
232 - (int)muteLocalAudio:(BOOL)muted;
233 
289 - (int)subscribeRemoteAudio:(BOOL)subscribe forUserID:(uint64_t)userID;
290 
338 - (int)subscribeAllRemoteAudio:(BOOL)subscribe;
339 
368 - (int)setAudioSubscribeOnlyBy:(NSArray<NSNumber*> *)uidArray;
369 
394 - (int)enableLocalSubStreamAudio:(BOOL)enabled;
395 
451 - (int)subscribeRemoteSubStreamAudio:(BOOL)subscribe forUserID:(uint64_t)userID;
452 
477 - (int)muteLocalSubStreamAudio:(BOOL)muted;
478 
479 
591 - (int)setExternalSubStreamAudioSource:(BOOL)enabled sampleRate:(int32_t)sampleRate channels:(int32_t)channels;
592 
621 - (int)pushExternalSubStreamAudioFrame:(NERtcAudioFrame *)frame;
622 
684  - (int)subscribeRemoteVideo:(BOOL)subscribe forUserID:(uint64_t)userID streamType:(NERtcRemoteVideoStreamType)streamType;
685 
728 - (int)startPreview;
729 
780 - (int)startPreview:(NERtcStreamChannelType)streamType;
781 
812 - (int)stopPreview;
813 
851 - (int)stopPreview:(NERtcStreamChannelType)streamType;
852 
894 - (int)setLocalRenderScaleMode:(NERtcVideoRenderScaleMode)mode;
895 
945 - (int)setRemoteRenderScaleMode:(NERtcVideoRenderScaleMode)mode forUserID:(uint64_t)userID;
946 
971  - (int)setVideoRotationMode:(NERtcVideoRotationMode)rotationMode;
972 
1024  - (int)muteLocalVideo:(BOOL)muted;
1025 
1076  - (int)muteLocalVideo:(BOOL)muted streamType:(NERtcStreamChannelType)streamType;
1077 
1126 - (int)setLoudspeakerMode:(bool)enable;
1127 
1142 - (int)getLoudspeakerMode:(bool *)enabled;
1143 
1144 
1157 - (int)startAudioDump;
1158 
1173 - (int)startAudioDumpWithType:(NERtcAudioDumpType)type;
1174 
1197 - (int)stopAudioDump;
1198 
1233 - (int)setRemoteHighPriorityAudioStream:(BOOL)enable forUserID:(uint64_t)userID streamType:(NERtcAudioStreamType)streamType;
1234 
1249 - (int)switchCameraWithPosition:(NERtcCameraPosition)position;
1250 
1251 
1290 - (int)updatePermissionKey:(NSString *)key;
1291 #pragma mark - External Video Input
1292 
1356 - (int)setExternalVideoSource:(BOOL)enable isScreen:(BOOL)isScreen;
1357 
1427 - (int)setExternalVideoSource:(BOOL)enable streamType:(NERtcStreamChannelType)streamType;
1428 
1453 - (int)pushExternalVideoFrame:(NERtcVideoFrame*)frame;
1454 
1470 - (int)pushExternalVideoFrame:(NERtcVideoFrame*)frame streamType:(NERtcStreamChannelType)streamType;
1471 
1472 #pragma mark - Sub Stream
1473 
1521 - (int)setupLocalSubStreamVideoCanvas:(nullable NERtcVideoCanvas *)canvas;
1522 
1572 - (int)startScreenCapture:(NERtcVideoSubStreamEncodeConfiguration *)config;
1573 
1601 - (int)stopScreenCapture;
1602 
1648 - (int)setLocalRenderSubStreamScaleMode:(NERtcVideoRenderScaleMode)mode;
1649 
1713 - (int)setupRemoteSubStreamVideoCanvas:(nullable NERtcVideoCanvas *)canvas forUserID:(uint64_t)userID;
1714 
1768 - (int)subscribeRemoteSubStreamVideo:(BOOL)subscribe forUserID:(uint64_t)userID;
1769 
1820 - (int)setRemoteRenderSubStreamVideoScaleMode:(NERtcVideoRenderScaleMode)mode forUserID:(uint64_t)userID;
1821 
1822 #pragma mark - Audio Session
1823 
1844 - (int)setAudioSessionOperationRestriction:(NERtcAudioSessionOperationRestriction)restriction;
1845 
1846 #pragma mark - Audio Device Manager
1847 
1888 - (int)setPlayoutDeviceMute:(bool)muted;
1889 
1890 
1903 - (int)getPlayoutDeviceMute:(bool *)muted;
1904 
1905 
1951 - (int)setRecordDeviceMute:(bool)muted;
1952 
1953 
1966 - (int)getRecordDeviceMute:(bool *)muted;
1967 
1968 
1969 #pragma mark - Camera & Torch Settings
1970 
1985 - (BOOL)isCameraZoomSupported;
1986 
2005 - (BOOL)isCameraTorchSupported;
2006 
2023 - (BOOL)isCameraFocusSupported;
2024 
2042 
2091 - (int)setCameraExposurePosition:(CGPoint)positionInView;
2092 
2111 - (int)setCameraTorchOn:(BOOL)on;
2112 
2125 - (BOOL)isCameraTorchOn;
2126 
2173 - (int)setCameraZoomFactor:(float)factor;
2174 
2191  - (float)maxCameraZoomScale;
2192 
2246 - (int)setCameraFocusPositionX:(float)focusX Y:(float)focusY;
2247 
2303  - (int)setCameraCaptureConfig:(NERtcCameraCaptureConfiguration *)config;
2304 
2354 - (int)setCameraCaptureConfig:(NERtcCameraCaptureConfiguration *)config streamType:(NERtcStreamChannelType)streamType;
2355 
2356 #pragma mark - Audio Mixing
2357 
2417 - (int)startAudioMixingWithOption:(NERtcCreateAudioMixingOption *)option;
2418 
2442 - (int)stopAudioMixing;
2443 
2470 - (int)pauseAudioMixing;
2471 
2497 - (int)resumeAudioMixing;
2498 
2511 - (int)setAudioMixingSendVolume:(uint32_t)volume;
2512 
2527 - (int)getAudioMixingSendVolume:(uint32_t *)volume;
2528 
2543 - (int)setAudioMixingPlaybackVolume:(uint32_t)volume;
2544 
2559 - (int)getAudioMixingPlaybackVolume:(uint32_t *)volume;
2560 
2575 - (int)getAudioMixingDuration:(uint64_t *)duration;
2576 
2591 - (int)getAudioMixingCurrentPosition:(uint64_t *)position;
2592 
2607 - (int)setAudioMixingPosition:(uint64_t)position;
2608 
2650 - (int)setAudioMixingPitch:(int32_t)pitch;
2651 
2672 - (int)getAudioMixingPitch:(int32_t *)pitch;
2673 
2674 #pragma mark - Audio Effect
2741 - (int)playEffectWitdId:(uint32_t)effectId effectOption:(NERtcCreateAudioEffectOption *)option;
2742 
2782 - (int)stopEffectWitdId:(uint32_t)effectId;
2783 
2810 - (int)stopAllEffects;
2811 
2826 - (int)pauseEffectWitdId:(uint32_t)effectId;
2827 
2842 - (int)resumeEffectWitdId:(uint32_t)effectId;
2843 
2856 - (int)pauseAllEffects;
2857 
2870 - (int)resumeAllEffects;
2871 
2888 - (int)setEffectSendVolumeWithId:(uint32_t)effectId volume:(uint32_t)volume;
2889 
2906 - (int)getEffectSendVolumeWithId:(uint32_t)effectId volume:(uint32_t *)volume;
2907 
2924 - (int)setEffectPlaybackVolumeWithId:(uint32_t)effectId volume:(uint32_t)volume;
2925 
2940 - (int)getEffectPlaybackVolumeWithId:(uint32_t)effectId volume:(uint32_t *)volume;
2941 
2962 - (int)getEffectDurationWithId:(uint32_t)effectId duration:(uint64_t *)duration;
2963 
2984 - (int)getEffectCurrentPositionWithId:(uint32_t)effectId position:(uint64_t *)position;
2985 
3026 - (int)setEffectPositionWithId:(uint32_t)effectId position:(uint64_t)position;
3027 
3074 - (int)setEffectPitchWithId:(uint32_t)effectId pitch:(int32_t)pitch;
3075 
3112 - (int)getEffectPitchWithId:(uint32_t)effectId pitch:(int32_t *)pitch;
3113 
3114 #pragma mark - In-ear monitoring
3166 - (int)enableEarback:(BOOL)enabled volume:(uint32_t)volume;
3167 
3180 - (int)setEarbackVolume:(uint32_t)volume;
3181 
3182 #pragma mark - Audio Recording
3247 - (int)startAudioRecording:(NSString *)filePath sampleRate:(int)sampleRate quality:(NERtcAudioRecordingQuality)quality;
3248 
3294 - (int)startAudioRecordingWithConfig:(NERtcAudioRecordingConfiguration *_Nonnull)config;
3295 
3323 - (int)stopAudioRecording;
3324 
3325 #pragma mark - External Audio
3392 - (int)setExternalAudioSource:(BOOL)enabled sampleRate:(int32_t)sampleRate channels:(int32_t)channels;
3393 
3419 - (int)pushExternalAudioFrame:(NERtcAudioFrame *)frame;
3420 
3421 
3485  - (int)setExternalAudioRender:(BOOL)enabled sampleRate:(int32_t)sampleRate channels:(int32_t)channels;
3486 
3512 - (int)pullExternalAudioFrame:(void *_Nonnull)data length:(int)len;
3513 
3514 #pragma mark - Data Channel
3515 
3544 - (int)enableLocalData:(BOOL)enabled;
3545 
3574 - (int)subscribeRemoteData:(BOOL)subscribe forUserID:(uint64_t)userID;
3575 
3594 - (int)sendData:(NSData *)data;
3595 
3596 #pragma mark - Media Statistic Observer
3597 
3610 - (int)addEngineMediaStatsObserver:(id<NERtcEngineMediaStatsObserver>)observer;
3611 
3624 - (int)removeEngineMediaStatsObserver:(id<NERtcEngineMediaStatsObserver>)observer;
3625 
3637 
3638 
3639 #pragma mark - Live Stream
3698 - (int)addLiveStreamTask:(NERtcLiveStreamTaskInfo *)taskInfo compeltion:(NERtcLiveStreamCompletion)completion;
3699 
3753 - (int)updateLiveStreamTask:(NERtcLiveStreamTaskInfo *)taskInfo compeltion:(NERtcLiveStreamCompletion)completion;
3754 
3808 - (int)removeLiveStreamTask:(NSString *)taskId compeltion:(NERtcLiveStreamCompletion)completion;
3809 
3810 #pragma mark - Audio Frame Observer
3861 - (int)setRecordingAudioFrameParameters:(nullable NERtcAudioFrameRequestFormat *)format;
3862 
3863 
3913 - (int)setPlaybackAudioFrameParameters:(nullable NERtcAudioFrameRequestFormat *)format;
3914 
3965 - (int)setMixedAudioFrameParameters:(nullable NERtcAudioFrameRequestFormat *)format;
3966 
4011 - (int)setAudioFrameObserver:(nullable id<NERtcEngineAudioFrameObserver>)observer;
4012 
4013 
4022 - (int)setVideoFrameObserver:(nullable id<NERtcEngineVideoFrameObserver>)videoframeObserver;
4023 
4024 
4025 #pragma mark - Volume Indication
4077 - (int)enableAudioVolumeIndication:(BOOL)enable interval:(uint64_t)interval;
4078 
4144 - (int)enableAudioVolumeIndication:(BOOL)enable interval:(uint64_t)interval vad:(BOOL)enableVad;
4145 
4146 
4147 #pragma mark - Signal Volume
4190 - (int)adjustRecordingSignalVolume:(uint32_t)volume;
4191 
4235 - (int)adjustPlaybackSignalVolume:(uint32_t)volume;
4236 
4292 - (int)adjustUserPlaybackSignalVolume:(uint32_t)volume forUserID:(uint64_t)userID;
4293 
4329 - (int)adjustChannelPlaybackSignalVolume:(uint32_t)volume;
4330 
4331 #pragma mark - Voice Effect
4332 
4353 - (int)setLocalVoicePitch:(double)pitch;
4354 
4371 - (int)setLocalVoiceEqualizationOfBandFrequency:(NERtcAudioEqualizationBandFrequency)bandFrequency withGain:(NSInteger)gain;
4372 
4413 - (int)setVoiceBeautifierPreset:(NERtcVoiceBeautifierType)type;
4414 
4457 - (int)setAudioEffectPreset:(NERtcVoiceChangerType)type;
4458 
4479 - (int)setLocalVoiceReverbParam:(NERtcReverbParam *)param;
4480 
4481 #pragma mark - WaterMark
4504 - (int)setLocalVideoWatermarkConfigs:(nullable NERtcVideoWatermarkConfig *)config
4505  withStreamType:(NERtcStreamChannelType)type;
4506 
4507 #pragma mark - Snapshot
4534 - (int)takeLocalSnapshot:(NERtcStreamChannelType)streamType callback:(NERtcTakeSnapshotCallback)callback;
4535 
4562 - (int)takeRemoteSnapshot:(NERtcStreamChannelType)streamType forUserID:(uint64_t)userID callback:(NERtcTakeSnapshotCallback)callback;
4563 
4564 #pragma mark - Other
4579 - (int)uploadSdkInfo;
4580 
4590 - (int)reportCustomEvent:(NSString *)eventName
4591  customIdentify:(NSString *)customIdentify
4592  param:(NSDictionary *)param;
4593 
4594 #pragma mark - SEI
4595 
4632 - (int)sendSEIMsg:(NSData *)data streamChannelType:(NERtcStreamChannelType)type;
4633 
4668 - (int)sendSEIMsg:(NSData *)data;
4669 
4670 #pragma mark- MediaRelay
4671 
4698 - (int)startChannelMediaRelay:(NERtcChannelMediaRelayConfiguration *_Nonnull)config;
4699 
4724 - (int)updateChannelMediaRelay:(NERtcChannelMediaRelayConfiguration *_Nonnull)config;
4725 
4757 - (int)stopChannelMediaRelay;
4758 
4784 - (int)enableSuperResolution:(BOOL)enabled;
4785 
4816 - (int)enableEncryption:(BOOL)enable config:(NERtcEncryptionConfig *)config;
4817 
4818 #pragma mark - NetworkQualiityTest
4819 
4849 - (int)startLastmileProbeTest:(NERtcLastmileProbeConfig *_Nullable)config;
4850 
4867 - (int)stopLastmileProbeTest;
4868 
4869 #pragma mark -
4883 - (nullable NERtcChannel *)createChannel:(NSString *)channelName;
4884 
4885 #pragma mark - Video Effect
4886 
4919 - (int)enableVideoCorrection:(BOOL)enable;
4920 
4947 - (int)setVideoCorrectionConfig:(nullable NERtcVideoCorrectionConfiguration *)config;
4948 
4996 - (int)enableVirtualBackground:(BOOL)enable backData:(NERtcVirtualBackgroundSource *_Nullable)backData;
4997 
4998 #pragma mark - Cloud Proxy
4999 
5020 - (int)setCloudProxy:(NERtcTransportType)proxyType;
5021 
5063 - (void)setStreamAlignmentProperty:(BOOL)enable;
5064 
5079 - (int64_t)getNtpTimeOffset;
5080 
5081 #pragma mark - encoder & decoder
5082 
5120 - (int)setPreDecodeObserver:(nullable id<NERtcEnginePreDecodeObserver>)observer;
5121 
5122 
5160 - (int)setVideoEncoderQosObserver:(nullable id<NERtcEngineVideoEncoderQosObserver>)encoderQosObserver;
5161 
5209 - (int)pushExternalAudioEncodedFrame:(NERtcAudioEncodedFrame *)encodedAudioFrame;
5210 
5258 - (int)pushExternalSubStreamAudioEncodedFrame:(NERtcAudioEncodedFrame *)encodedAudioFrame;
5259 
5313 - (int)pushExternalVideoEncodedFrame:(NERtcVideoEncodedFrame *)encodedVideoFrame;
5314 
5368 - (int)pushExternalSubStreamVideoEncodedFrame:(NERtcVideoEncodedFrame *)encodedVideoFrame;
5369 
5370 
5371 @end
5372 
5373 NS_ASSUME_NONNULL_END
5374 
5375 #pragma clang diagnostic pop
5376 
5377 #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:1902
NERtcAudioDumpType
音频dump类型
Definition: NERtcEngineEnum.h:1660
NERtcVoiceChangerType
变声 预设值。
Definition: NERtcEngineEnum.h:2003
NERtcVideoRotationMode
视频旋转模式。
Definition: NERtcEngineEnum.h:750
NERtcAudioRecordingQuality
录音音质。
Definition: NERtcEngineEnum.h:1736
NERtcCameraPosition
指定的摄像头位置。
Definition: NERtcEngineEnum.h:1360
NERtcRemoteVideoStreamType
远端视频流类型。
Definition: NERtcEngineEnum.h:636
NERtcStreamFallbackOptions
Definition: NERtcEngineEnum.h:1692
NERtcStreamChannelType
SEI发送的流通道类型。
Definition: NERtcEngineEnum.h:1043
NERtcAudioSessionOperationRestriction
音频会话控制权限。 SDK 对 Audio Session 的控制权限。
Definition: NERtcEngineEnum.h:1613
NERtcTransportType
云代理模式。
Definition: NERtcEngineEnum.h:3170
NERtcVoiceBeautifierType
美声 预设值。
Definition: NERtcEngineEnum.h:2095
NERtcVideoRenderScaleMode
视频渲染缩放模式。
Definition: NERtcEngineEnum.h:712
NERtcMediaPriorityType
Definition: NERtcEngineEnum.h:1671
NERtcAudioStreamType
音频流类型,目前同时支持音频两路流:主流和辅流
Definition: NERtcEngineEnum.h:1646
编码好的音频数据
Definition: NERtcEngineBase.h:3107
音频帧。
Definition: NERtcEngineBase.h:1492
音频原始数据回调格式(默认不设置)。
Definition: NERtcEngineBase.h:1379
Definition: NERtcEngineBase.h:878
摄像头采集配置。
Definition: NERtcEngineBase.h:485
Definition: NERtcChannel.h:14
Definition: NERtcEngineBase.h:1726
Options for creating audio effects
Definition: NERtcEngineBase.h:781
Options for creating mixing audios
Definition: NERtcEngineBase.h:663
配置媒体流加密模式和密钥。
Definition: NERtcEngineBase.h:2378
Last mile 网络探测配置。
Definition: NERtcEngineBase.h:2548
直播推流任务的配置。
Definition: NERtcEngineBase.h:1283
混响参数
Definition: NERtcEngineBase.h:2850
视频画布设置。
Definition: NERtcEngineBase.h:293
视频图像畸变矫正相关设置。
Definition: NERtcEngineBase.h:2749
Definition: NERtcEngineBase.h:3065
视频帧信息。
Definition: NERtcEngineBase.h:1582
本地辅流发送配置。
Definition: NERtcEngineBase.h:645
视频水印设置,目前支持三种类型的水印,但只能其中选择一种水印生效。
Definition: NERtcEngineBase.h:2324
自定义背景图像。
Definition: NERtcEngineBase.h:2786
NERtcEngine 的常用接口。
Definition: INERtcEngine.h:80
NERtcEngine 扩展接口
Definition: INERtcEngineEx.h:29
BOOL isCameraZoomSupported()
检测设备当前使用的摄像头是否支持缩放功能。 该方法需要在相机启动后调用,例如调用 startPreview 或 joinChannel 后。
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:1520
统计信息回调
Definition: NERtcEngineStatistics.h:928
Definition: NERtcEngineDelegate.h:628
Definition: NERtcEngineDelegate.h:656
本地视频数据采集回调 如果需要对采集数据做美颜等处理,需要实现这个 protocol。
Definition: NERtcEngineDelegate.h:511