8 #import <Foundation/Foundation.h>
42 - (BOOL)onRecordAudioFrame:(
AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onRecordAudioFrame(_:channelId:));
59 - (BOOL)onPlaybackAudioFrame:(
AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onPlaybackAudioFrame(_:channelId:));
76 - (BOOL)onMixedAudioFrame:(
AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId NS_SWIFT_NAME(onMixedAudioFrame(_:channelId:));
94 - (BOOL)onPlaybackAudioFrameBeforeMixing:(
AgoraAudioFrame* _Nonnull)frame channelId:(NSString * _Nonnull)channelId uid:(NSUInteger)uid NS_SWIFT_NAME(onPlaybackAudioFrame(beforeMixing:channelId:uid:));
132 - (AgoraAudioParams* _Nonnull)getMixedAudioParams NS_SWIFT_NAME(getMixedAudioParams());
155 - (AgoraAudioParams* _Nonnull)getRecordAudioParams NS_SWIFT_NAME(getRecordAudioParams());
177 - (AgoraAudioParams* _Nonnull)getPlaybackAudioParams NS_SWIFT_NAME(getPlaybackAudioParams());
207 - (BOOL)OnEncodedVideoFrameReceived:(NSData * _Nonnull )videoData length:(
size_t)length info:(
AgoraEncodedVideoFrameInfo * _Nonnull)videoFrameInfo;
305 - (BOOL)onRenderVideoFrame:(
AgoraOutputVideoFrame * _Nonnull)videoFrame uid:(NSUInteger)uid channelId:(NSString * _Nonnull)channelId;
323 - (BOOL)onMediaPlayerVideoFrame:(
AgoraOutputVideoFrame * _Nonnull)videoFrame mediaPlayerId:(NSInteger)mediaPlayerId;
399 didChangedToPosition:(NSInteger)position;
410 elapsedTime:(NSInteger)elapsedTime
411 message:(NSString *_Nullable)message;
425 didReceiveData:(NSString *_Nullable)data
426 length:(NSInteger)length;
435 didPlayBufferUpdated:(NSInteger)playCachedBuffer;
473 volumeIndicationDidReceive:(NSInteger)volume;
503 didReceivePixelBuffer:(CVPixelBufferRef _Nonnull)pixelBuffer;
548 message:(NSString *_Nullable)message;
584 - (NSData * _Nullable)readyToSendMetadataAtTimestamp:(NSTimeInterval)timestamp sourceType:(
AgoraVideoSourceType)sourceType;
600 - (void)receiveMetadata:(NSData * _Nonnull)data fromUser:(NSInteger)uid atTimestamp:(NSTimeInterval)timestamp;
613 #pragma mark Delegate Methods
623 #pragma mark Core Delegate Methods
637 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didOccurWarning:(AgoraWarningCode)warningCode;
647 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didOccurError:(AgoraErrorCode)errorCode;
690 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine tokenPrivilegeWillExpire:(NSString *_Nonnull)token;
803 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didApiCallExecute:(NSInteger)error api:(NSString * _Nonnull)api result:(NSString * _Nonnull)result;
806 #if (!(TARGET_OS_IPHONE) && (TARGET_OS_MAC))
820 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine device:(NSString * _Nonnull)deviceId type:(AgoraMediaDeviceType)deviceType stateChanged:(NSInteger) state;
837 #pragma mark Local User Core Delegate Methods
852 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didJoinChannel:(NSString * _Nonnull)channel withUid:(NSUInteger)uid elapsed:(NSInteger) elapsed;
867 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didRejoinChannel:(NSString * _Nonnull)channel withUid:(NSUInteger)uid elapsed:(NSInteger) elapsed;
914 #pragma mark Local User Audio Delegate Methods
926 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine firstLocalAudioFramePublished:(NSInteger)elapsed;
959 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didAudioRouteChanged:(AgoraAudioOutputRouting)routing;
976 - (void)rtcEngineDidAudioEffectFinish:(
AgoraRtcEngineKit * _Nonnull)engine soundId:(
int)soundId;
979 #pragma mark Local User Video Delegate Methods
1000 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine cameraFocusDidChangedToRect:(CGRect)rect;
1007 - (void)rtcEngine:(
AgoraRtcEngineKit* _Nonnull)engine cameraExposureDidChangedToRect:(CGRect)rect;
1063 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didLocalPublishFallbackToAudioOnly:(BOOL)isFallbackOrRecover;
1066 #pragma mark Remote User Core Delegate Methods
1092 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didJoinedOfUid:(NSUInteger)uid elapsed:(NSInteger)elapsed;
1122 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine receiveStreamMessageFromUid:(NSUInteger)uid streamId:(NSInteger)streamId data:(NSData * _Nonnull)data;
1136 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didOccurStreamMessageErrorFromUid:(NSUInteger)uid streamId:(NSInteger)streamId error:(NSInteger)error missed:(NSInteger)missed cached:(NSInteger)cached;
1139 #pragma mark Remote User Audio Delegate Methods
1153 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine firstRemoteAudioFrameOfUid:(NSUInteger)uid elapsed:(NSInteger)elapsed;
1174 - (void)rtcEngine:(
AgoraRtcEngineKit* _Nonnull)engine firstRemoteAudioFrameDecodedOfUid:(NSUInteger)uid elapsed:(NSInteger)elapsed;
1192 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didAudioMuted:(BOOL)muted byUid:(NSUInteger)uid;
1245 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine activeSpeaker:(NSUInteger)speakerUid;
1253 - (void)rtcEngineRemoteAudioMixingDidStart:(
AgoraRtcEngineKit * _Nonnull)engine;
1259 - (void)rtcEngineRemoteAudioMixingDidFinish:(
AgoraRtcEngineKit * _Nonnull)engine;
1281 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine audioTransportStatsOfUid:(NSUInteger)uid delay:(NSUInteger)delay lost:(NSUInteger)lost rxKBitRate:(NSUInteger)rxKBitRate;
1311 - (void)rtcEngine:(
AgoraRtcEngineKit *_Nonnull)engine didAudioSubscribeStateChange:(NSString * _Nonnull)channelId
1312 uid:(
unsigned int)uid
1315 elapseSinceLastState:(
int)elapseSinceLastState;
1325 - (void)rtcEngine:(
AgoraRtcEngineKit *_Nonnull)engine didAudioPublishStateChange:(NSString * _Nonnull)channelId
1328 elapseSinceLastState:(
int)elapseSinceLastState;
1330 #pragma mark String UID
1338 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didLocalUserRegisteredWithUserId:(NSUInteger)uid userAccount:(NSString * _Nonnull)userAccount;
1351 #pragma mark Rhythm Player Delegates Methods
1356 #pragma mark Remote User Video Delegates Methods
1378 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine firstRemoteVideoDecodedOfUid:(NSUInteger)uid size:(CGSize)size elapsed:(NSInteger)elapsed __deprecated;
1387 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine firstRemoteVideoFrameOfUid:(NSUInteger)uid size:(CGSize)size elapsed:(NSInteger)elapsed;
1396 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine videoSizeChangedOfUid:(NSUInteger)uid size:(CGSize)size rotation:(NSInteger)rotation;
1398 - (void)rtcEngine:(
AgoraRtcEngineKit* _Nonnull)engine snapshotTaken:(NSUInteger)uid filePath:(NSString* _Nonnull)filePath width:(NSInteger)width height:(NSInteger)height errCode:(NSInteger)errCode;
1424 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine remoteVideoStateChangedOfUid:(NSUInteger)uid state:(AgoraVideoRemoteState)state reason:(
AgoraVideoRemoteReason)reason elapsed:(NSInteger)elapsed;
1469 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didVideoMuted:(BOOL)muted byUid:(NSUInteger)uid __deprecated_msg("use rtcEngine:remoteVideoStateChangedOfUid:state:reason: instead.");
1485 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didVideoEnabled:(BOOL)enabled byUid:(NSUInteger)uid __deprecated_msg("use rtcEngine:remoteVideoStateChangedOfUid:state:reason: instead.");
1497 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didLocalVideoEnabled:(BOOL)enabled byUid:(NSUInteger)uid __deprecated_msg("use rtcEngine:remoteVideoStateChangedOfUid:state:reason: instead.");
1507 - (void)rtcEngine:(
AgoraRtcEngineKit* _Nonnull)engine didProxyConnected:(NSString* _Nonnull)channel withUid:(NSUInteger)uid proxyType:(
AgoraProxyType)proxyType localProxyIp:(NSString* _Nonnull)localProxyIp elapsed:(NSInteger)elapsed;
1516 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine remoteUserStateChangedOfUid:(NSUInteger)uid state:(NSUInteger)state;
1544 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine didRemoteSubscribeFallbackToAudioOnly:(BOOL)isFallbackOrRecover byUid:(NSUInteger)uid;
1556 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine videoTransportStatsOfUid:(NSUInteger)uid delay:(NSUInteger)delay lost:(NSUInteger)lost rxKBitRate:(NSUInteger)rxKBitRate;
1568 - (void)rtcEngine:(
AgoraRtcEngineKit *_Nonnull)engine didVideoSubscribeStateChange:(NSString * _Nonnull)channelId
1569 uid:(
unsigned int)uid
1572 elapseSinceLastState:(
int)elapseSinceLastState;
1584 - (void)rtcEngine:(
AgoraRtcEngineKit *_Nonnull)engine didVideoPublishStateChange:(NSString * _Nonnull)channelId
1588 elapseSinceLastState:(
int)elapseSinceLastState;
1590 #pragma mark Stream Publish Delegate Methods
1634 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine streamPublishedWithUrl:(NSString * _Nonnull)url errorCode:(AgoraErrorCode)errorCode;
1641 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine streamUnpublishedWithUrl:(NSString * _Nonnull)url;
1656 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine streamInjectedStatusOfUrl:(NSString * _Nonnull)url uid:(NSUInteger)uid status:(AgoraInjectStreamStatus)status;
1663 - (void)rtcEngine:(
AgoraRtcEngineKit *_Nonnull)engine audioMixingStateChanged:(AgoraAudioMixingStateType)state
1664 reasonCode:(AgoraAudioMixingReasonCode)reasonCode;
1666 #if TARGET_OS_IPHONE
1667 #pragma mark Face Detection Delegate Methods
1695 - (void)rtcEngine:(
AgoraRtcEngineKit* _Nonnull)engine facePositionDidChangeWidth:(
int)width previewHeight:(
int)height faces:(NSArray<
AgoraFacePositionInfo*>* _Nullable)faces NS_SWIFT_NAME(rtcEngine(_:facePositionDidChangeWidth:previewHeight:faces:));
1698 #pragma mark - Unavailable Delegate Methods
1701 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine localVideoStats:(AgoraRtcLocalVideoStats * _Nonnull)stats __attribute__((availability(ios,deprecated=7_0,message="Use rtcEngine:localVideoStats:sourceType instead.")));
1703 - (void)rtcEngine:(
AgoraRtcEngineKit *_Nonnull)engine didVideoPublishStateChange:(NSString * _Nonnull)channelId
1706 elapseSinceLastState:(
int)elapseSinceLastState __attribute__((availability(ios,deprecated=7_0,message="Use rtcEngine:didVideoPublishStateChange:sourceType:oldState:newState:elapseSinceLastState: instead.")));
1708 - (void)rtcEngine:(
AgoraRtcEngineKit * _Nonnull)engine firstLocalVideoFramePublishedWithElapsed:(NSInteger)elapsed __attribute__((availability(ios,deprecated=7_0,message="Use rtcEngine:firstLocalVideoFramePublishedWithElapsed:sourceType: instead.")));
1712 #pragma mark - AgoraRtcEngineKit
1726 #pragma mark Core Methods
1739 @property(nonatomic, weak) id<AgoraRtcEngineDelegate> _Nullable
delegate;
1803 - (int)joinChannelByToken:(NSString * _Nullable)token
1804 channelId:(NSString * _Nonnull)channelId
1805 info:(NSString * _Nullable)info
1807 joinSuccess:(
void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock;
1869 - (int)joinChannelByToken:(NSString * _Nullable)token
1870 channelId:(NSString * _Nonnull)channelId
1873 joinSuccess:(
void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock;
1875 - (int)startMultipleVideoStreams:(
VIEW_CLASS * _Nonnull)view screen:(
VIEW_CLASS * _Nonnull)screenView remotes:(NSArray * _Nullable)remoteViews;
1903 - (int)leaveChannel:(
void(^ _Nullable)(
AgoraChannelStats * _Nonnull stat))leaveChannelBlock;
1932 leaveChannelBlock:(void (^ _Nullable)(
AgoraChannelStats * _Nonnull))leaveChannelBlock;
2025 - (int)renewToken:(NSString * _Nonnull)token;
2115 - (int)enableWirelessAccelerate:(BOOL)enabled;
2117 #if (!(TARGET_OS_IPHONE) && (TARGET_OS_MAC))
2123 - (int)stopLocalVideoTranscoder;
2136 - (int)enableWebSdkInteroperability:(BOOL)enabled
__deprecated;
2152 + (instancetype _Nonnull)sharedEngineWithAppId:(NSString * _Nonnull)appId
2196 #pragma mark Core Audio
2253 - (int)enableLocalAudio:(BOOL)enabled;
2295 - (int)enableAudioVolumeIndication:(NSInteger)interval
2296 smooth:(NSInteger)smooth
2297 reportVad:(BOOL)reportVad;
2300 #if TARGET_OS_IPHONE
2318 - (int)setEnableSpeakerphone:(BOOL)enableSpeaker;
2329 - (BOOL)isSpeakerphoneEnabled;
2358 - (int)setDefaultAudioRouteToSpeakerphone:(BOOL)defaultToSpeaker;
2372 - (int)adjustRecordingSignalVolume:(NSInteger)volume;
2385 - (int)adjustPlaybackSignalVolume:(NSInteger)volume;
2406 - (int)adjustUserPlaybackSignalVolume:(NSUInteger)uid volume:(int)volume;
2416 -(int)muteRecordingSignal:(BOOL)muted;
2428 - (int)muteLocalAudioStream:(BOOL)mute;
2443 - (int)muteRemoteAudioStream:(NSUInteger)uid mute:(BOOL)mute;
2470 - (int)muteAllRemoteAudioStreams:(BOOL)mute;
2486 - (int)setDefaultMuteAllRemoteAudioStreams:(BOOL)mute
__deprecated;
2488 - (int)enableExtensionWithVendor:(NSString * __nonnull)provider extension:(NSString * __nonnull)extension enabled:(BOOL)enabled;
2504 - (int)enableExtensionWithVendor:(NSString * __nonnull)provider
2505 extension:(NSString * __nonnull)extension
2506 enabled:(BOOL)enabled
2520 - (int)setExtensionProviderPropertyWithVendor:(NSString * __nonnull)provider
2521 key:(NSString * __nonnull)key
2522 value:(NSString * __nonnull)value;
2524 - (int)setExtensionPropertyWithVendor:(NSString * __nonnull)provider
2525 extension:(NSString * __nonnull)extension
2526 key:(NSString * __nonnull)key
2527 value:(NSString * __nonnull)value;
2542 - (int)setExtensionPropertyWithVendor:(NSString * __nonnull)provider
2543 extension:(NSString * __nonnull)extension
2544 key:(NSString * __nonnull)key
2545 value:(NSString * __nonnull)value
2558 - (NSString * _Nullable)getExtensionPropertyWithVendor:(NSString * __nonnull)provider
2559 extension:(NSString * __nonnull)extension
2560 key:(NSString * __nonnull)key;
2573 - (NSString * _Nullable)getExtensionPropertyWithVendor:(NSString * __nonnull)provider
2574 extension:(NSString * __nonnull)extension
2575 key:(NSString * __nonnull)key
2578 #if (!(TARGET_OS_IPHONE) && (TARGET_OS_MAC))
2600 - (int)enableLoopbackRecording:(BOOL)enabled deviceName:(NSString* _Nullable)deviceName;
2614 - (int)adjustLoopbackSignalVolume:(NSInteger)volume;
2622 - (int)getLoopbackRecordingVolume;
2626 #pragma mark Core Video
2686 - (int)enableLocalVideo:(BOOL)enabled;
2705 - (int)setVideoEncoderConfiguration:(AgoraVideoEncoderConfiguration * _Nonnull)config;
2732 - (int)setLocalVideoMirrorMode:(AgoraVideoMirrorMode)mode
__deprecated;
2737 - (int)setLocalRenderMode:(NSUInteger)uid
2759 mirror:(AgoraVideoMirrorMode)mirror;
2806 - (int)setRemoteRenderMode:(NSUInteger)uid
2808 mirror:(AgoraVideoMirrorMode)mirror;
2823 - (int)muteLocalVideoStream:(BOOL)mute;
2850 - (int)muteAllRemoteVideoStreams:(BOOL)mute;
2866 - (int)setDefaultMuteAllRemoteVideoStreams:(BOOL)mute
__deprecated;
2883 - (int)muteRemoteVideoStream:(NSUInteger)uid
2899 - (int)setBeautyEffectOptions:(BOOL)enable options:(
AgoraBeautyOptions* _Nullable)options;
2924 - (int)setVideoDenoiserOptions:(BOOL)enable options:(
AgoraVideoDenoiserOptions* _Nullable)options NS_SWIFT_NAME(setVideoDenoiserOptions(_:options:));
2949 - (int)setLowlightEnhanceOptions:(BOOL)enable options:(
AgoraLowlightEnhanceOptions* _Nullable)options NS_SWIFT_NAME(setLowlightEnhanceOptions(_:options:));
2974 - (int)setColorEnhanceOptions:(BOOL)enable options:(
AgoraColorEnhanceOptions* _Nullable)options NS_SWIFT_NAME(setColorEnhanceOptions(_:options:));
3025 #if TARGET_OS_IPHONE
3082 - (int)enableRemoteSuperResolution:(NSUInteger)uid enable:(BOOL)enable;
3084 #pragma mark Audio Effect
3100 - (int)setLocalVoicePitch:(
double)pitch;
3109 - (int)setLocalVoiceEqualizationOfBandFrequency:(AgoraAudioEqualizationBandFrequency)bandFrequency withGain:(NSInteger)gain;
3118 - (int)setLocalVoiceReverbOfType:(AgoraAudioReverbType)reverbType withValue:(NSInteger)value;
3120 #pragma mark Audio Effect Playback
3150 - (int)preloadEffect:(
int)soundId
3151 filePath:(NSString* _Nonnull)filePath;
3178 - (int)preloadEffect:(
int)soundId
3179 filePath:(NSString* _Nonnull)filePath
3180 startPos:(
int)startPos;
3205 - (int)playEffect:(
int)soundId
3206 filePath:(NSString* _Nonnull)filePath
3207 loopCount:(NSInteger)loopCount
3210 gain:(NSInteger)gain;
3236 - (int)playEffect:(
int)soundId
3237 filePath:(NSString* _Nonnull)filePath
3238 loopCount:(NSInteger)loopCount
3241 gain:(NSInteger)gain
3242 startPos:(
int)startPos;
3275 - (int)playEffect:(
int)soundId
3276 filePath:(NSString* _Nonnull)filePath
3277 loopCount:(NSInteger)loopCount
3280 gain:(NSInteger)gain
3281 publish:(BOOL)publish;
3315 - (int)playEffect:(
int)soundId
3316 filePath:(NSString* _Nonnull)filePath
3317 loopCount:(NSInteger)loopCount
3320 gain:(NSInteger)gain
3321 publish:(BOOL)publish
3322 startPos:(int)startPos;
3354 - (int)playAllEffectsWithLoopCount:(NSInteger)loopCount
3357 gain:(NSInteger)gain
3358 publish:(BOOL)publish;
3367 - (int)getEffectsVolume;
3378 - (int)setEffectsVolume:(NSInteger)volume;
3390 - (int)setVolumeOfEffect:(
int)soundId
3391 withVolume:(int)volume;
3402 - (int)getVolumeOfEffect:(
int)soundId;
3411 - (int)pauseEffect:(
int)soundId;
3418 - (int)pauseAllEffects;
3427 - (int)resumeEffect:(
int)soundId;
3434 - (int)resumeAllEffects;
3443 - (int)stopEffect:(
int)soundId;
3451 - (int)stopAllEffects;
3469 - (int)getEffectDuration:(NSString* _Nonnull)filePath NS_SWIFT_NAME(getEffectDuration(_:));
3484 - (int)setEffectPosition:(
int)soundId pos:(NSInteger)pos NS_SWIFT_NAME(setEffectPosition(_:pos:));
3495 - (int)getEffectCurrentPosition:(
int)soundId NS_SWIFT_NAME(getEffectCurrentPosition(_:));
3507 - (int)unloadEffect:(
int)soundId;
3515 - (int)unloadAllEffects;
3517 #pragma mark beautifier effect
3594 - (int)setAudioEffectPreset:(AgoraAudioEffectPreset)preset;
3710 - (int)setAudioEffectParameters:(AgoraAudioEffectPreset)preset param1:(int)param1 param2:(
int)param2;
3772 #pragma mark Sound Position Indication
3792 - (int)enableSoundPositionIndication:(BOOL)enabled;
3817 - (int)setRemoteVoicePosition:(NSUInteger)uid pan:(double)pan gain:(
double)gain;
3829 - (int)enableSpatialAudio:(BOOL)enabled;
3846 - (int)setRemoteUserSpatialAudioParams:(NSUInteger)uid
3847 params:(AgoraSpatialAudioParams* _Nonnull)params;
3850 #pragma mark Audio Mixing
3888 - (int)startAudioMixing:(NSString * _Nonnull)filePath
3889 loopback:(BOOL)loopback
3890 cycle:(NSInteger)cycle;
3924 - (int)startAudioMixing:(NSString * _Nonnull)filePath
3925 loopback:(BOOL)loopback
3926 cycle:(NSInteger)cycle
3927 startPos:(NSInteger)startPos;
3938 - (int)stopAudioMixing;
3948 - (int)pauseAudioMixing;
3959 - (int)resumeAudioMixing;
3969 - (int)selectAudioTrack:(NSInteger)index;
3990 - (int)adjustAudioMixingVolume:(NSInteger)volume;
4001 - (int)adjustAudioMixingPublishVolume:(NSInteger)volume;
4011 - (int)getAudioMixingPublishVolume;
4021 - (int)adjustAudioMixingPlayoutVolume:(NSInteger)volume;
4031 - (int)getAudioMixingPlayoutVolume;
4043 - (int)getAudioMixingDuration;
4053 - (int)getAudioMixingCurrentPosition;
4065 - (int)setAudioMixingPosition:(NSInteger)pos;
4077 - (int)setAudioMixingDualMonoMode:(AgoraAudioMixingDualMonoMode)mode;
4088 - (int)setAudioMixingPitch:(NSInteger)pitch;
4090 #pragma mark Audio Recording
4112 - (int)startAudioRecording:(NSString * _Nonnull)filePath
4113 quality:(AgoraAudioRecordingQuality)quality;
4148 - (int)stopAudioRecording;
4150 #pragma mark Echo Test
4169 - (int)startEchoTest:(
void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))successBlock;
4187 - (int)startEchoTestWithInterval:(NSInteger)interval
4188 successBlock:(void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))successBlock;
4206 - (int)stopEchoTest;
4209 #pragma mark Miscellaneous Audio Control
4226 - (int)enableInEarMonitoring:(BOOL)enabled;
4252 - (int)setInEarMonitoringVolume:(NSInteger)volume;
4254 #if TARGET_OS_IPHONE
4264 - (void)setAudioSessionOperationRestriction:(AgoraAudioSessionOperationRestriction)restriction;
4268 #pragma mark Dual Video Mode
4285 - (int)enableDualStreamMode:(BOOL)enabled;
4324 enabled:(BOOL)enabled
4396 - (int)setRemoteVideoStream:(NSUInteger)uid
4409 - (int)setRemoteVideo:(NSUInteger)uid
4423 #pragma mark Subscribe Blacklist / Whitelist
4438 - (int)setSubscribeAudioBlacklist:(NSArray <NSNumber *> *_Nonnull)blacklist;
4455 - (int)setSubscribeAudioWhitelist:(NSArray <NSNumber *> *_Nonnull)whitelist;
4470 - (int)setSubscribeVideoBlacklist:(NSArray <NSNumber *> *_Nonnull)blacklist;
4487 - (int)setSubscribeVideoWhitelist:(NSArray <NSNumber *> *_Nonnull)whitelist;
4489 #pragma mark Stream Fallback
4513 - (int)setLocalPublishFallbackOption:(AgoraStreamFallbackOptions)option;
4526 - (int)setRemoteSubscribeFallbackOption:(AgoraStreamFallbackOptions)option;
4528 #pragma mark Video Quality Control
4545 - (int)setVideoQualityParameters:(BOOL)preferFrameRateOverImageQuality;
4547 #pragma mark External Media Source
4594 - (void)setExternalVideoSource:(BOOL)enable useTexture:(BOOL)useTexture
4611 - (int)pushExternalEncodedVideoFrame:(NSData* _Nonnull)frame
4660 - (int)destroyCustomVideoTrack:(NSUInteger)position;
4670 - (int)destroyCustomEncodedVideoTrack:(NSUInteger)position;
4672 #pragma mark External Audio Data
4686 - (void)enableExternalAudioSink:(BOOL)enabled
4687 sampleRate:(NSUInteger)sampleRate
4688 channels:(NSUInteger)channels;
4706 - (BOOL)pullPlaybackAudioFrameRawData:(
void * _Nonnull)data
4707 lengthInByte:(NSUInteger)lengthInByte;
4727 - (CMSampleBufferRef _Nullable)pullPlaybackAudioFrameSampleBufferByLengthInByte:(NSUInteger)lengthInByte;
4748 - (int)setExternalAudioSource:(BOOL)enabled
4749 sampleRate:(NSInteger)sampleRate
4750 channels:(NSInteger)channels;
4752 - (int)enableEchoCancellationExternal:(BOOL)enabled
4753 audioSourceDelay:(NSInteger)audioSourceDelay;
4773 - (int)setExternalAudioSource:(BOOL)enabled
4774 sampleRate:(NSInteger)sampleRate
4775 channels:(NSInteger)channels
4776 sourceNumber:(NSInteger)sourceNumber
4777 localPlayback:(BOOL)localPlayback
4778 publish:(BOOL)publish;
4794 - (int)enableCustomAudioLocalPlayback:(NSInteger)sourceId enabled:(BOOL)enabled;
4805 - (int)pushExternalAudioFrameRawData:(
void * _Nonnull)data
4806 samples:(NSInteger)samples
4807 sourceId:(NSInteger)sourceId
4808 timestamp:(NSTimeInterval)timestamp;
4823 - (int)pushExternalAudioFrameRawData:(
void* _Nonnull)data
4824 samples:(NSInteger)samples
4825 sampleRate:(NSInteger)sampleRate
4826 channels:(NSInteger)channels
4827 sourceId:(NSInteger)sourceId
4828 timestamp:(NSTimeInterval)timestamp;
4837 - (int)pushExternalAudioFrameSampleBuffer:(CMSampleBufferRef _Nonnull)sampleBuffer;
4849 - (int)setDirectExternalAudioSource:(BOOL)enabled;
4859 - (int)setDirectExternalAudioSource:(BOOL)enabled localPlayback:(BOOL)localPlayback;
4868 - (int)pushDirectAudioFrameNSData:(NSData* _Nonnull)data;
4882 - (int)pushDirectAudioFrameRawData:(
void* _Nonnull)data
4883 samples:(NSInteger)samples
4884 sampleRate:(NSInteger)sampleRate
4885 channels:(NSInteger)channels;
4897 - (int)enableExternalAudioSourceLocalPlayback:(BOOL)enable;
4922 - (int)setRecordingAudioFrameParametersWithSampleRate:(NSInteger)sampleRate
4923 channel:(NSInteger)channel
4925 samplesPerCall:(NSInteger)samplesPerCall;
4950 - (int)setPlaybackAudioFrameParametersWithSampleRate:(NSInteger)sampleRate
4951 channel:(NSInteger)channel
4953 samplesPerCall:(NSInteger)samplesPerCall;
4972 - (int)setMixedAudioFrameParametersWithSampleRate:(NSInteger)sampleRate
4973 channel:(NSInteger)channel
4974 samplesPerCall:(NSInteger)samplesPerCall;
4989 - (int)setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:(NSInteger)sampleRate
4990 channel:(NSInteger)channel;
5000 - (int)adjustCustomAudioPublishVolume:(NSInteger)sourceId volume:(NSInteger)volume;
5011 - (int)adjustCustomAudioPlayoutVolume:(NSInteger)sourceId volume:(NSInteger)volume;
5013 #pragma mark Audio spectrum monitor
5025 - (int)enableAudioSpectrumMonitor:(
int)intervalInMS;
5048 - (int)registerAudioSpectrumDelegate:(id<AgoraAudioSpectrumDelegate> _Nullable )
delegate;
5058 - (int) unregisterAudioSpectrumDelegate:(id<AgoraAudioSpectrumDelegate> _Nullable)
delegate;
5060 #pragma mark Built-in Encryption
5094 #pragma mark Data Stream
5119 - (int)createDataStream:(NSInteger * _Nonnull)streamId
5120 reliable:(BOOL)reliable
5121 ordered:(BOOL)ordered;
5131 - (int)createDataStream:(NSInteger * _Nonnull)streamId
5156 - (int)sendStreamMessage:(NSInteger)streamId
5157 data:(NSData * _Nonnull)data;
5159 #pragma mark Stream Publish
5174 - (int)startRtmpStreamWithoutTranscoding:(NSString* _Nonnull)url;
5184 - (int)startRtmpStreamWithTranscoding:(NSString* _Nonnull)url transcoding:(AgoraLiveTranscoding* _Nullable)transcoding;
5202 - (int)updateRtmpTranscoding:(AgoraLiveTranscoding* _Nullable)transcoding;
5221 - (int)stopRtmpStream:(NSString* _Nonnull)url;
5233 - (int)addInjectStreamUrl:(NSString * _Nonnull)url config:(AgoraLiveInjectStreamConfig * _Nonnull)config;
5242 - (int)removeInjectStreamUrl:(NSString * _Nonnull)url;
5245 #if (!(TARGET_OS_IPHONE) && (TARGET_OS_MAC))
5246 #pragma mark Screen Capture
5271 - (int)startScreenCaptureByDisplayId:(UInt32)displayId
5272 regionRect:(CGRect)regionRect
5273 captureParams:(
AgoraScreenCaptureParameters *_Nonnull)captureParams NS_SWIFT_NAME(startScreenCapture(byDisplayId:regionRect:captureParams:));
5294 - (int)startScreenCaptureByWindowId:(UInt32)windowId
5295 regionRect:(CGRect)regionRect
5296 captureParams:(
AgoraScreenCaptureParameters *_Nonnull)captureParams NS_SWIFT_NAME(startScreenCapture(byWindowId:regionRect:captureParams:));
5307 - (int)updateScreenCaptureRegion:(CGRect)rect NS_SWIFT_NAME(updateScreenCaptureRegion(_:));
5318 - (int)updateScreenCaptureParameters:(
AgoraScreenCaptureParameters * _Nonnull)captureParams NS_SWIFT_NAME(updateScreenCaptureParameters(_:));
5329 - (int)setScreenCaptureScenario:(
AgoraScreenScenarioType)scenarioType NS_SWIFT_NAME(setScreenCaptureScenario(_:));
5361 - (NSArray<AgoraScreenCaptureSourceInfo*>* _Nullable)getScreenCaptureSourcesWithThumbSize:(NSSize)thumbSize iconSize:(NSSize)iconSize includeScreen:(BOOL)includeScreen;
5374 #if TARGET_OS_IPHONE
5380 #pragma mark Camera Control
5394 - (BOOL)isCameraZoomSupported;
5410 - (CGFloat)setCameraZoomFactor:(CGFloat)zoomFactor;
5419 - (BOOL)isCameraFocusPositionInPreviewSupported;
5428 - (BOOL)setCameraFocusPositionInPreview:(CGPoint)position;
5437 - (BOOL)isCameraExposurePositionSupported;
5446 - (BOOL)setCameraExposurePosition:(CGPoint)positionInView;
5468 - (BOOL)isCameraTorchSupported NS_SWIFT_NAME(isCameraTorchSupported());
5486 - (BOOL)setCameraTorchOn:(BOOL)isOn NS_SWIFT_NAME(setCameraTorchOn(_:));
5495 - (BOOL)isCameraAutoFocusFaceModeSupported;
5508 - (BOOL)setCameraAutoFocusFaceModeEnabled:(BOOL)enable;
5517 - (BOOL)isCameraAutoExposureFaceModeSupported;
5530 - (BOOL)setCameraAutoExposureFaceModeEnabled:(BOOL)enable;
5557 #if (!(TARGET_OS_IPHONE) && (TARGET_OS_MAC))
5558 #pragma mark macOS Device
5571 - (void)monitorDeviceChange:(BOOL)enabled;
5585 - (NSArray<AgoraRtcDeviceInfo *> * _Nullable)enumerateDevices:(AgoraMediaDeviceType)type;
5594 - (AgoraRtcDeviceInfo * _Nullable)getDeviceInfo:(AgoraMediaDeviceType)type;
5606 - (int)setDevice:(AgoraMediaDeviceType)type deviceId:(NSString * _Nonnull)deviceId;
5614 - (AgoraRtcDeviceInfo* _Nullable)getDefaultAudioDevice:(AgoraMediaDeviceType)type;
5624 - (int)getDeviceVolume:(AgoraMediaDeviceType)type;
5635 - (int)setDeviceVolume:(AgoraMediaDeviceType)type volume:(int)volume;
5647 - (int)startRecordingDeviceTest:(
int)indicationInterval;
5658 - (int)stopRecordingDeviceTest;
5674 - (int)startPlaybackDeviceTest:(NSString * _Nonnull)audioFileName;
5685 - (int)stopPlaybackDeviceTest;
5700 -(int)startAudioDeviceLoopbackTest:(
int)indicationInterval;
5709 -(int)stopAudioDeviceLoopbackTest;
5722 - (int)followSystemPlaybackDevice:(BOOL)enable;
5735 - (int)followSystemRecordingDevice:(BOOL)enable;
5745 - (int)startCaptureDeviceTest:(NSView * _Nonnull)view;
5753 - (int)stopCaptureDeviceTest;
5756 #pragma mark Face Detection
5758 #if TARGET_OS_IPHONE
5783 - (int)enableFaceDetection:(
bool)enable NS_SWIFT_NAME(enableFaceDetection(_:));
5786 #pragma mark Watermark
5799 - (int)addVideoWatermark:(AgoraImage * _Nonnull)watermark NS_SWIFT_NAME(addVideoWatermark(_:))__deprecated_msg(
"use addVideoWatermark:url options instead.");
5826 - (int)addVideoWatermark:(NSURL* _Nonnull)url options:(
WatermarkOptions* _Nonnull)options;
5832 - (int)clearVideoWatermarks;
5834 #pragma mark String UID
5868 - (int)registerLocalUserAccount:(NSString* _Nonnull)userAccount appId:(NSString* _Nonnull)appId NS_SWIFT_NAME(registerLocalUserAccount(_:appId:));
5904 - (int)joinChannelByToken:(NSString * _Nullable)token
5905 channelId:(NSString * _Nonnull)channelId
5906 userAccount:(NSString * _Nonnull)userAccount
5907 joinSuccess:(void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock;
5944 - (int)joinChannelByToken:(NSString * _Nullable)token
5945 channelId:(NSString * _Nonnull)channelId
5946 userAccount:(NSString * _Nonnull)userAccount
5948 joinSuccess:(
void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))joinSuccessBlock;
5960 - (
AgoraUserInfo* _Nullable)getUserInfoByUserAccount:(NSString* _Nonnull)userAccount withError:(AgoraErrorCode* _Nullable)error;
5972 - (
AgoraUserInfo* _Nullable)getUserInfoByUid:(NSUInteger)uid withError:(AgoraErrorCode* _Nullable)error;
5974 #pragma mark Custom Audio PCM Frame
5982 - (BOOL)setAudioFrameDelegate:(id<AgoraAudioFrameDelegate> _Nullable)
delegate;
5984 #pragma mark Custom Video Frame
5997 - (BOOL)setVideoFrameDelegate:(id<AgoraVideoFrameDelegate> _Nullable)
delegate;
5999 #pragma mark Encoded Video Frame
6012 - (BOOL)setEncodedVideoFrameDelegate:(id<AgoraEncodedVideoFrameDelegate> _Nullable)
delegate;
6014 #pragma mark Custom Media Metadata
6038 - (BOOL)setMediaMetadataDataSource:(id<AgoraMediaMetadataDataSource> _Nullable)metadataDataSource withType:(
AgoraMetadataType)type;
6055 - (BOOL)setMediaMetadataDelegate:(id<AgoraMediaMetadataDelegate> _Nullable)metadataDelegate withType:(
AgoraMetadataType)type;
6057 #pragma mark Miscellaneous Methods
6076 + (NSString* _Nonnull)getErrorDescription: (NSInteger)error;
6083 - (
void * _Nullable)getNativeHandle;
6109 - (int)setLogFile:(NSString * _Nonnull)filePath;
6125 - (int)setLogFilter:(NSUInteger)filter;
6141 - (int)setLogFileSize:(NSUInteger)fileSizeInKBytes;
6184 - (int)rate:(NSString * _Nonnull)callId
6185 rating:(NSInteger)rating
6186 description:(NSString * _Nullable)description;
6205 - (int)complain:(NSString * _Nonnull)callId
6206 description:(NSString * _Nullable)description;
6219 - (int)enableMainQueueDispatch:(BOOL)enabled;
6259 - (int)setParameters:(NSString * _Nonnull)options;
6266 - (NSString * _Nullable)getParameter:(NSString * _Nonnull)parameter
6267 args:(NSString * _Nullable)args;
6269 #pragma mark MediaPlayer
6279 - (id<AgoraRtcMediaPlayerProtocol>_Nullable)createMediaPlayerWithDelegate:(id<AgoraRtcMediaPlayerDelegate>_Nullable)
delegate;
6297 - (int)destroyMediaPlayer:(id<AgoraRtcMediaPlayerProtocol>_Nullable)mediaPlayer;
6304 - (id<AgoraRtcMediaPlayerProtocol> _Nullable)getMediaPlayer:(
int)mediaPlayerId;
6306 #pragma mark rhythm player
6318 - (int)startRhythmPlayer:(NSString * _Nonnull)sound1 sound2:(NSString * _Nonnull)sound2 config:(
AgoraRhythmPlayerConfig * _Nullable)config;
6338 #pragma mark Streaming Kit
6368 - (int)setDirectCdnStreamingVideoConfiguration:(AgoraVideoEncoderConfiguration * _Nonnull)config;
6381 - (int)startDirectCdnStreaming:(id<AgoraDirectCdnStreamingEventDelegate> _Nonnull)
delegate
6382 publishUrl:(NSString * _Nonnull)publishUrl
6409 #pragma mark Deprecated Methods
6427 - (void)audioVolumeIndicationBlock:(
void(^ _Nullable)(NSArray * _Nonnull speakers, NSInteger totalVolume))audioVolumeIndicationBlock __deprecated_msg(
"use delegate instead.");
6437 - (void)firstLocalVideoFrameBlock:(
void(^ _Nullable)(NSInteger width, NSInteger height, NSInteger elapsed))firstLocalVideoFrameBlock __deprecated_msg(
"use delegate instead.");
6449 - (void)firstRemoteVideoDecodedBlock:(
void(^ _Nullable)(NSUInteger uid, NSInteger width, NSInteger height, NSInteger elapsed))firstRemoteVideoDecodedBlock __deprecated_msg(
"use delegate instead.");
6460 - (void)firstRemoteVideoFrameBlock:(
void(^ _Nullable)(NSUInteger uid, NSInteger width, NSInteger height, NSInteger elapsed))firstRemoteVideoFrameBlock __deprecated_msg(
"use delegate instead.");
6471 - (void)userJoinedBlock:(
void(^ _Nullable)(NSUInteger uid, NSInteger elapsed))userJoinedBlock __deprecated_msg(
"use delegate instead.");
6481 - (void)userOfflineBlock:(
void(^ _Nullable)(NSUInteger uid))userOfflineBlock __deprecated_msg(
"use delegate instead.");
6492 - (void)userMuteAudioBlock:(
void(^ _Nullable)(NSUInteger uid, BOOL muted))userMuteAudioBlock __deprecated_msg(
"use delegate instead.");
6508 - (void)userMuteVideoBlock:(
void(^ _Nullable)(NSUInteger uid, BOOL muted))userMuteVideoBlock __deprecated_msg(
"use delegate instead.");
6517 - (void)localVideoStatBlock:(
void(^ _Nullable)(NSInteger sentBitrate, NSInteger sentFrameRate))localVideoStatBlock __deprecated_msg(
"use delegate instead.");
6528 - (void)remoteVideoStatBlock:(
void(^ _Nullable)(NSUInteger uid, NSInteger delay, NSInteger receivedBitrate, NSInteger receivedFrameRate))remoteVideoStatBlock __deprecated_msg(
"use delegate instead.");
6533 - (void)cameraReadyBlock:(
void(^ _Nullable)(void))cameraReadyBlock __deprecated_msg(
"use delegate instead.");
6538 - (void)connectionLostBlock:(
void(^ _Nullable)(void))connectionLostBlock __deprecated_msg(
"use delegate instead.");
6550 - (void)rejoinChannelSuccessBlock:(
void(^ _Nullable)(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed))rejoinChannelSuccessBlock __deprecated_msg(
"use delegate instead.");
6558 - (void)rtcStatsBlock:(
void(^ _Nullable)(
AgoraChannelStats * _Nonnull stat))rtcStatsBlock __deprecated_msg(
"use delegate instead.");
6568 - (void)leaveChannelBlock:(
void(^ _Nullable)(
AgoraChannelStats * _Nonnull stat))leaveChannelBlock __deprecated_msg(
"use delegate instead.");
6579 - (void)audioQualityBlock:(
void(^ _Nullable)(NSUInteger uid,
AgoraNetworkQuality quality, NSUInteger delay, NSUInteger lost))audioQualityBlock __deprecated_msg(
"use delegate instead.");
6589 - (void)networkQualityBlock:(
void(^ _Nullable)(NSUInteger uid,
AgoraNetworkQuality txQuality,
AgoraNetworkQuality rxQuality))networkQualityBlock __deprecated_msg(
"use delegate instead.");
6597 - (void)lastmileQualityBlock:(
void(^ _Nullable)(
AgoraNetworkQuality quality))lastmileQualityBlock __deprecated_msg(
"use delegate instead.");
6602 - (void)mediaEngineEventBlock:(
void(^ _Nullable)(NSInteger code))mediaEngineEventBlock __deprecated_msg(
"use delegate instead.");
6613 - (int)pauseAudio __deprecated_msg(
"use disableAudio instead.");
6624 - (int)resumeAudio __deprecated_msg(
"use enableAudio instead.");
6632 + (instancetype _Nonnull)sharedEngineWithAppId:(NSString * _Nonnull)AppId
6633 error:(void(^ _Nullable)(AgoraErrorCode errorCode))errorBlock __deprecated_msg(
"use sharedEngineWithAppId:delegate: instead.");
6640 - (int)setHighQualityAudioParametersWithFullband:(BOOL)fullband
6642 fullBitrate:(BOOL)fullBitrate __deprecated_msg(
"use setAudioProfile:scenario: instead.");
6661 - (int)setVideoProfile:(AgoraVideoProfile)profile
6662 swapWidthAndHeight:(BOOL)swapWidthAndHeight __deprecated_msg(
"use setVideoEncoderConfiguration: instead.");
6682 - (int)setVideoResolution:(CGSize)size andFrameRate:(NSInteger)frameRate bitrate:(NSInteger)bitrate __deprecated_msg(
"use setVideoEncoderConfiguration: instead.");
6711 - (NSString * _Nullable)getDeviceId:(AgoraMediaDeviceType)type __deprecated_msg(
"use getDeviceInfo: instead.");
6713 #if (!(TARGET_OS_IPHONE) && (TARGET_OS_MAC))
6723 - (int)setSpeakerphoneVolume:(NSUInteger)volume __deprecated_msg(
"use setDeviceVolume:volume: instead.");
6725 - (int)startScreenCapture:(NSUInteger)windowId
6726 withCaptureFreq:(NSInteger)captureFreq
6727 bitRate:(NSInteger)bitRate
6728 andRect:(CGRect)rect __deprecated_msg(
"use startScreenCaptureByWindowId:regionRect:captureParams: instead.");
6736 + (NSString * _Nonnull)getMediaEngineVersion
__deprecated;
6738 - (int)setAudioOptionParams:(NSString * _Nonnull)params;
6739 - (NSString * _Nullable)getAudioOptionParams;
6740 - (int)setAudioSessionParams:(NSString * _Nonnull)params;
6741 - (NSString * _Nullable)getAudioSessionParams;
6764 - (int)sendCustomReportMessage:(NSString * _Nullable)messageId
6765 category:(NSString * _Nullable)category
6766 event:(NSString * _Nullable)
event
6767 label:(NSString * _Nullable)label
6768 value:(NSInteger)value;
6801 - (int)setEncryptionMode:(NSString * _Nullable)encryptionMode __deprecated_msg(
"use enableEncryption: instead.");
6817 - (int)setEncryptionSecret:(NSString * _Nullable)secret __deprecated_msg(
"use enableEncryption: instead.");
6868 - (NSInteger)takeSnapshot:(NSInteger)uid filePath:(NSString* _Nonnull)filePath;
6882 - (int) setAVSyncSource:(NSString* _Nonnull)channelId uid:(NSUInteger)uid;
6890 - (int) enableVideoImageSource:(BOOL)enable
6896 #pragma mark Media Recorder Delegate Methods
6930 + (instancetype _Nonnull)sharedMediaRecorderWithRtcEngine:(
AgoraRtcEngineKit* _Nonnull)engine;
6948 - (int)enableMainQueueDispatch:(BOOL)enabled;