| 
				
			 | 
			
			
				@@ -316,6 +316,10 @@ RCT_EXPORT_METHOD(setDefaultAudioRouteToSpeakerphone:(BOOL)defaultToSpeaker){ 
			 | 
		
	
		
			
			| 
				316
			 | 
			
				316
			 | 
			
			
				   [self.rtcEngine setDefaultAudioRouteToSpeakerphone:defaultToSpeaker]; 
			 | 
		
	
		
			
			| 
				317
			 | 
			
				317
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				318
			 | 
			
				318
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				319
			 | 
			
			
				+RCT_EXPORT_METHOD(setDefaultMuteAllRemoteAudioStreams:(BOOL)defaultToSpeaker){ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				320
			 | 
			
			
				+  [self.rtcEngine setDefaultMuteAllRemoteAudioStreams:defaultToSpeaker]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				321
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				322
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				319
			 | 
			
				323
			 | 
			
			
				 // enable video 
			 | 
		
	
		
			
			| 
				320
			 | 
			
				324
			 | 
			
			
				 RCT_EXPORT_METHOD(enableVideo) { 
			 | 
		
	
		
			
			| 
				321
			 | 
			
				325
			 | 
			
			
				   [self.rtcEngine enableVideo]; 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -346,6 +350,10 @@ RCT_EXPORT_METHOD(muteRemoteVideoStream:(NSUInteger)uid mute:(BOOL)mute){ 
			 | 
		
	
		
			
			| 
				346
			 | 
			
				350
			 | 
			
			
				   [self.rtcEngine muteRemoteVideoStream:uid mute:mute]; 
			 | 
		
	
		
			
			| 
				347
			 | 
			
				351
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				348
			 | 
			
				352
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				353
			 | 
			
			
				+RCT_EXPORT_METHOD(setDefaultMuteAllRemoteVideoStreams:(BOOL)mute) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				354
			 | 
			
			
				+  [self.rtcEngine setDefaultMuteAllRemoteVideoStreams:mute]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				355
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				356
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				349
			 | 
			
				357
			 | 
			
			
				 // enable audio 
			 | 
		
	
		
			
			| 
				350
			 | 
			
				358
			 | 
			
			
				 RCT_EXPORT_METHOD(enableAudio) { 
			 | 
		
	
		
			
			| 
				351
			 | 
			
				359
			 | 
			
			
				   [self.rtcEngine enableAudio]; 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -376,15 +384,15 @@ RCT_EXPORT_METHOD(muteRemoteAudioStream:(NSUInteger)uid muted:(BOOL)mute){ 
			 | 
		
	
		
			
			| 
				376
			 | 
			
				384
			 | 
			
			
				   [self.rtcEngine muteRemoteAudioStream:uid mute:mute]; 
			 | 
		
	
		
			
			| 
				377
			 | 
			
				385
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				378
			 | 
			
				386
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				379
			 | 
			
				
			 | 
			
			
				-// start recoding service 
			 | 
		
	
		
			
			| 
				380
			 | 
			
				
			 | 
			
			
				-RCT_EXPORT_METHOD(startAudioRecording:(NSDictionary*)options){ 
			 | 
		
	
		
			
			| 
				381
			 | 
			
				
			 | 
			
			
				-  [self.rtcEngine startAudioRecording:options[@"path"] quality:(AgoraAudioRecordingQuality)[options[@"quality"] integerValue]]; 
			 | 
		
	
		
			
			| 
				382
			 | 
			
				
			 | 
			
			
				-} 
			 | 
		
	
		
			
			| 
				383
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				384
			 | 
			
				
			 | 
			
			
				-// stop recoding service 
			 | 
		
	
		
			
			| 
				385
			 | 
			
				
			 | 
			
			
				-RCT_EXPORT_METHOD(stopAudioRecording:(NSString*)recordingKey){ 
			 | 
		
	
		
			
			| 
				386
			 | 
			
				
			 | 
			
			
				-  [self.rtcEngine stopAudioRecording]; 
			 | 
		
	
		
			
			| 
				387
			 | 
			
				
			 | 
			
			
				-} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				387
			 | 
			
			
				+//// start recoding service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				388
			 | 
			
			
				+//RCT_EXPORT_METHOD(startAudioRecording:(NSDictionary*)options){ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				389
			 | 
			
			
				+//  [self.rtcEngine startAudioRecording:options[@"path"] quality:(AgoraAudioRecordingQuality)[options[@"quality"] integerValue]]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				390
			 | 
			
			
				+//} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				391
			 | 
			
			
				+// 
			 | 
		
	
		
			
			| 
				
			 | 
			
				392
			 | 
			
			
				+//// stop recoding service 
			 | 
		
	
		
			
			| 
				
			 | 
			
				393
			 | 
			
			
				+//RCT_EXPORT_METHOD(stopAudioRecording:(NSString*)recordingKey){ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				394
			 | 
			
			
				+//  [self.rtcEngine stopAudioRecording]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				395
			 | 
			
			
				+//} 
			 | 
		
	
		
			
			| 
				388
			 | 
			
				396
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				389
			 | 
			
				397
			 | 
			
			
				 // adjust recorcding signal volume 
			 | 
		
	
		
			
			| 
				390
			 | 
			
				398
			 | 
			
			
				 RCT_EXPORT_METHOD(adjustRecordingSignalVolume: (NSInteger) volume){ 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -435,7 +443,7 @@ RCT_EXPORT_METHOD(setLocalVoicePitch:(double) pitch) { 
			 | 
		
	
		
			
			| 
				435
			 | 
			
				443
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				436
			 | 
			
				444
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				437
			 | 
			
				445
			 | 
			
			
				 // set local video equalization of band frequency 
			 | 
		
	
		
			
			| 
				438
			 | 
			
				
			 | 
			
			
				-RCT_EXPORT_METHOD(setLocalVoiceEqualizationOfBandFrequency:(NSInteger)band gain:(NSInteger)gain) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				446
			 | 
			
			
				+RCT_EXPORT_METHOD(setLocalVoiceEqualization:(NSInteger)band gain:(NSInteger)gain) { 
			 | 
		
	
		
			
			| 
				439
			 | 
			
				447
			 | 
			
			
				   AgoraAudioEqualizationBandFrequency bandType = AgoraAudioEqualizationBand31; 
			 | 
		
	
		
			
			| 
				440
			 | 
			
				448
			 | 
			
			
				   switch (band) { 
			 | 
		
	
		
			
			| 
				441
			 | 
			
				449
			 | 
			
			
				     case AgoraAudioEqualizationBand31: 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -473,7 +481,7 @@ RCT_EXPORT_METHOD(setLocalVoiceEqualizationOfBandFrequency:(NSInteger)band gain: 
			 | 
		
	
		
			
			| 
				473
			 | 
			
				481
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				474
			 | 
			
				482
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				475
			 | 
			
				483
			 | 
			
			
				 // set local voice reverb of type 
			 | 
		
	
		
			
			| 
				476
			 | 
			
				
			 | 
			
			
				-RCT_EXPORT_METHOD(setLocalVoiceReverbOfType:(NSInteger)reverb value:(NSInteger)value) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				484
			 | 
			
			
				+RCT_EXPORT_METHOD(setLocalVoiceReverb:(NSInteger)reverb value:(NSInteger)value) { 
			 | 
		
	
		
			
			| 
				477
			 | 
			
				485
			 | 
			
			
				   AgoraAudioReverbType reverbType = AgoraAudioReverbDryLevel; 
			 | 
		
	
		
			
			| 
				478
			 | 
			
				486
			 | 
			
			
				   switch (reverb) { 
			 | 
		
	
		
			
			| 
				479
			 | 
			
				487
			 | 
			
			
				     case AgoraAudioReverbDryLevel: 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -525,7 +533,7 @@ RCT_EXPORT_METHOD(adjustAudioMixingVolume:(NSInteger) volume) { 
			 | 
		
	
		
			
			| 
				525
			 | 
			
				533
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				526
			 | 
			
				534
			 | 
			
			
				 // adjust audio mixing playout volume 
			 | 
		
	
		
			
			| 
				527
			 | 
			
				535
			 | 
			
			
				 RCT_EXPORT_METHOD(adjustAudioMixingPlayoutVolume:(NSInteger) volume) { 
			 | 
		
	
		
			
			| 
				528
			 | 
			
				
			 | 
			
			
				-  [self.rtcEngine adjustAudioMixingVolume:volume]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				536
			 | 
			
			
				+  [self.rtcEngine adjustAudioMixingPlayoutVolume:volume]; 
			 | 
		
	
		
			
			| 
				529
			 | 
			
				537
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				530
			 | 
			
				538
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				531
			 | 
			
				539
			 | 
			
			
				 // adjust audio mixing publish volume 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -783,7 +791,7 @@ RCT_EXPORT_METHOD(pauseEffect 
			 | 
		
	
		
			
			| 
				783
			 | 
			
				791
			 | 
			
			
				                   :(NSInteger) soundId 
			 | 
		
	
		
			
			| 
				784
			 | 
			
				792
			 | 
			
			
				                   resolve:(RCTPromiseResolveBlock)resolve 
			 | 
		
	
		
			
			| 
				785
			 | 
			
				793
			 | 
			
			
				                   reject:(RCTPromiseRejectBlock)reject) { 
			 | 
		
	
		
			
			| 
				786
			 | 
			
				
			 | 
			
			
				-  NSInteger res = [self.rtcEngine unloadEffect:(int)soundId]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				794
			 | 
			
			
				+  NSInteger res = [self.rtcEngine pauseEffect:(int)soundId]; 
			 | 
		
	
		
			
			| 
				787
			 | 
			
				795
			 | 
			
			
				   if (res != 0) { 
			 | 
		
	
		
			
			| 
				788
			 | 
			
				796
			 | 
			
			
				     reject(@"131014", @"pauseEffect failed", [self makeNSError:@{ 
			 | 
		
	
		
			
			| 
				789
			 | 
			
				797
			 | 
			
			
				                                                                  @"code": @(131014), 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -801,10 +809,10 @@ RCT_EXPORT_METHOD(pauseEffect 
			 | 
		
	
		
			
			| 
				801
			 | 
			
				809
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				802
			 | 
			
				810
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				803
			 | 
			
				811
			 | 
			
			
				 // pause all effects 
			 | 
		
	
		
			
			| 
				804
			 | 
			
				
			 | 
			
			
				-RCT_EXPORT_METHOD(pauseAllEffects:(NSInteger) soundId 
			 | 
		
	
		
			
			| 
				805
			 | 
			
				
			 | 
			
			
				-                  resolve:(RCTPromiseResolveBlock)resolve 
			 | 
		
	
		
			
			| 
				
			 | 
			
				812
			 | 
			
			
				+RCT_EXPORT_METHOD(pauseAllEffects 
			 | 
		
	
		
			
			| 
				
			 | 
			
				813
			 | 
			
			
				+                  :(RCTPromiseResolveBlock)resolve 
			 | 
		
	
		
			
			| 
				806
			 | 
			
				814
			 | 
			
			
				                   reject:(RCTPromiseRejectBlock)reject) { 
			 | 
		
	
		
			
			| 
				807
			 | 
			
				
			 | 
			
			
				-  NSInteger res = [self.rtcEngine unloadEffect:(int)soundId]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				815
			 | 
			
			
				+  NSInteger res = [self.rtcEngine pauseAllEffects]; 
			 | 
		
	
		
			
			| 
				808
			 | 
			
				816
			 | 
			
			
				   if (res != 0) { 
			 | 
		
	
		
			
			| 
				809
			 | 
			
				817
			 | 
			
			
				     reject(@"131014", @"pauseAllEffects failed", [self makeNSError:@{ 
			 | 
		
	
		
			
			| 
				810
			 | 
			
				818
			 | 
			
			
				                                                                      @"code": @(131014), 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -943,8 +951,7 @@ RCT_EXPORT_METHOD(setAudioSessionOperationRestriction 
			 | 
		
	
		
			
			| 
				943
			 | 
			
				951
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				944
			 | 
			
				952
			 | 
			
			
				 // gateway test start echo 
			 | 
		
	
		
			
			| 
				945
			 | 
			
				953
			 | 
			
			
				 RCT_EXPORT_METHOD(startEchoTest 
			 | 
		
	
		
			
			| 
				946
			 | 
			
				
			 | 
			
			
				-                  :(RCTResponseSenderBlock)sender 
			 | 
		
	
		
			
			| 
				947
			 | 
			
				
			 | 
			
			
				-                  resolve:(RCTPromiseResolveBlock)resolve 
			 | 
		
	
		
			
			| 
				
			 | 
			
				954
			 | 
			
			
				+                  :(RCTPromiseResolveBlock)resolve 
			 | 
		
	
		
			
			| 
				948
			 | 
			
				955
			 | 
			
			
				                   reject:(RCTPromiseRejectBlock)reject) { 
			 | 
		
	
		
			
			| 
				949
			 | 
			
				956
			 | 
			
			
				   NSInteger res = [self.rtcEngine startEchoTest:^(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed) { 
			 | 
		
	
		
			
			| 
				950
			 | 
			
				957
			 | 
			
			
				     sender(@{ 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -1152,6 +1159,49 @@ RCT_EXPORT_METHOD(clearVideoWatermarks 
			 | 
		
	
		
			
			| 
				1152
			 | 
			
				1159
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				1153
			 | 
			
				1160
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				1154
			 | 
			
				1161
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				1162
			 | 
			
			
				+// set local publish fallback option 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1163
			 | 
			
			
				+RCT_EXPORT_METHOD(setLocalPublishFallbackOption:(NSInteger)option 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1164
			 | 
			
			
				+                  resolve:(RCTPromiseResolveBlock)resolve 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1165
			 | 
			
			
				+                  reject:(RCTPromiseRejectBlock)reject) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1166
			 | 
			
			
				+  NSInteger res = [self.rtcEngine setLocalPublishFallbackOption:option]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1167
			 | 
			
			
				+  if (res != 0) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1168
			 | 
			
			
				+    reject(@"131039", @"setLocalPublishFallbackOption failed", [self makeNSError:@{ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1169
			 | 
			
			
				+                                                                          @"code": @(131039), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1170
			 | 
			
			
				+                                                                          @"message":@{ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1171
			 | 
			
			
				+                                                                              @"success":@(NO), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1172
			 | 
			
			
				+                                                                              @"value":@(res) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1173
			 | 
			
			
				+                                                                              } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1174
			 | 
			
			
				+                                                                          }]); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1175
			 | 
			
			
				+  } else { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1176
			 | 
			
			
				+    resolve(@{ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1177
			 | 
			
			
				+              @"success": @(YES), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1178
			 | 
			
			
				+              @"value": @(res) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1179
			 | 
			
			
				+              }); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1180
			 | 
			
			
				+  } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1181
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1182
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1183
			 | 
			
			
				+// set remote subscribe fallback option 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1184
			 | 
			
			
				+RCT_EXPORT_METHOD(setRemoteSubscribeFallbackOption:(NSInteger)option 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1185
			 | 
			
			
				+                  resolve:(RCTPromiseResolveBlock)resolve 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1186
			 | 
			
			
				+                  reject:(RCTPromiseRejectBlock)reject) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1187
			 | 
			
			
				+  NSInteger res = [self.rtcEngine setRemoteSubscribeFallbackOption:option]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1188
			 | 
			
			
				+  if (res != 0) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1189
			 | 
			
			
				+    reject(@"131040", @"setRemoteSubscribeFallbackOption failed", [self makeNSError:@{ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1190
			 | 
			
			
				+                                                                                   @"code": @(131040), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1191
			 | 
			
			
				+                                                                                   @"message":@{ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1192
			 | 
			
			
				+                                                                                       @"success":@(NO), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1193
			 | 
			
			
				+                                                                                       @"value":@(res) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1194
			 | 
			
			
				+                                                                                       } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1195
			 | 
			
			
				+                                                                                   }]); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1196
			 | 
			
			
				+  } else { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1197
			 | 
			
			
				+    resolve(@{ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1198
			 | 
			
			
				+              @"success": @(YES), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1199
			 | 
			
			
				+              @"value": @(res) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1200
			 | 
			
			
				+              }); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1201
			 | 
			
			
				+  } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1202
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1203
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1204
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				1155
			 | 
			
				1205
			 | 
			
			
				 // enable dual stream mode 
			 | 
		
	
		
			
			| 
				1156
			 | 
			
				1206
			 | 
			
			
				 RCT_EXPORT_METHOD(enableDualStreamMode 
			 | 
		
	
		
			
			| 
				1157
			 | 
			
				1207
			 | 
			
			
				                   :(BOOL) enabled 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -1175,14 +1225,14 @@ RCT_EXPORT_METHOD(enableDualStreamMode 
			 | 
		
	
		
			
			| 
				1175
			 | 
			
				1225
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				1176
			 | 
			
				1226
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				1177
			 | 
			
				1227
			 | 
			
			
				 // set remote video stream 
			 | 
		
	
		
			
			| 
				1178
			 | 
			
				
			 | 
			
			
				-RCT_EXPORT_METHOD(setRemoteVideoStream 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1228
			 | 
			
			
				+RCT_EXPORT_METHOD(setRemoteVideoStreamType 
			 | 
		
	
		
			
			| 
				1179
			 | 
			
				1229
			 | 
			
			
				                   :(NSDictionary *) options 
			 | 
		
	
		
			
			| 
				1180
			 | 
			
				1230
			 | 
			
			
				                   resolve:(RCTPromiseResolveBlock)resolve 
			 | 
		
	
		
			
			| 
				1181
			 | 
			
				1231
			 | 
			
			
				                   reject:(RCTPromiseRejectBlock)reject) { 
			 | 
		
	
		
			
			| 
				1182
			 | 
			
				1232
			 | 
			
			
				   NSInteger res = [self.rtcEngine setRemoteVideoStream:[options[@"uid"] integerValue] 
			 | 
		
	
		
			
			| 
				1183
			 | 
			
				1233
			 | 
			
			
				                                                   type:(AgoraVideoStreamType)[options[@"streamType"] integerValue]]; 
			 | 
		
	
		
			
			| 
				1184
			 | 
			
				1234
			 | 
			
			
				   if (res != 0) { 
			 | 
		
	
		
			
			| 
				1185
			 | 
			
				
			 | 
			
			
				-    reject(@"131029", @"setRemoteVideoStream failed", [self makeNSError:@{ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1235
			 | 
			
			
				+    reject(@"131029", @"setRemoteVideoStreamType failed", [self makeNSError:@{ 
			 | 
		
	
		
			
			| 
				1186
			 | 
			
				1236
			 | 
			
			
				                                                                           @"code": @(131029), 
			 | 
		
	
		
			
			| 
				1187
			 | 
			
				1237
			 | 
			
			
				                                                                           @"message":@{ 
			 | 
		
	
		
			
			| 
				1188
			 | 
			
				1238
			 | 
			
			
				                                                                               @"success":@(NO), 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -1294,7 +1344,7 @@ RCT_EXPORT_METHOD(setVideoQualityParameters 
			 | 
		
	
		
			
			| 
				1294
			 | 
			
				1344
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				1295
			 | 
			
				1345
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				1296
			 | 
			
				1346
			 | 
			
			
				 // set local video mirror mode 
			 | 
		
	
		
			
			| 
				1297
			 | 
			
				
			 | 
			
			
				-RCT_EXPORT_METHOD(setLocalVideoMirroMode 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1347
			 | 
			
			
				+RCT_EXPORT_METHOD(setLocalVideoMirrorMode 
			 | 
		
	
		
			
			| 
				1298
			 | 
			
				1348
			 | 
			
			
				                   :(NSInteger) mode 
			 | 
		
	
		
			
			| 
				1299
			 | 
			
				1349
			 | 
			
			
				                   resolve:(RCTPromiseResolveBlock)resolve 
			 | 
		
	
		
			
			| 
				1300
			 | 
			
				1350
			 | 
			
			
				                   reject:(RCTPromiseRejectBlock)reject) { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -1354,8 +1404,8 @@ RCT_EXPORT_METHOD(isCameraTorchSupported 
			 | 
		
	
		
			
			| 
				1354
			 | 
			
				1404
			 | 
			
			
				             }); 
			 | 
		
	
		
			
			| 
				1355
			 | 
			
				1405
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				1356
			 | 
			
				1406
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				1357
			 | 
			
				
			 | 
			
			
				-// isCameraFocusPositionInPreviewSupported 
			 | 
		
	
		
			
			| 
				1358
			 | 
			
				
			 | 
			
			
				-RCT_EXPORT_METHOD(isCameraFocusPositionInPreviewSupported 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1407
			 | 
			
			
				+// isCameraFocusSupported 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1408
			 | 
			
			
				+RCT_EXPORT_METHOD(isCameraFocusSupported 
			 | 
		
	
		
			
			| 
				1359
			 | 
			
				1409
			 | 
			
			
				                   :(RCTPromiseResolveBlock)resolve) { 
			 | 
		
	
		
			
			| 
				1360
			 | 
			
				1410
			 | 
			
			
				   BOOL res = [self.rtcEngine isCameraFocusPositionInPreviewSupported]; 
			 | 
		
	
		
			
			| 
				1361
			 | 
			
				1411
			 | 
			
			
				   resolve(@{ 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -1440,7 +1490,9 @@ RCT_EXPORT_METHOD(setCameraAutoFocusFaceModeEnabled:(BOOL)enable 
			 | 
		
	
		
			
			| 
				1440
			 | 
			
				1490
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				1441
			 | 
			
				1491
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				1442
			 | 
			
				1492
			 | 
			
			
				 // getCallId 
			 | 
		
	
		
			
			| 
				1443
			 | 
			
				
			 | 
			
			
				-RCT_EXPORT_METHOD(getCallId:(RCTPromiseResolveBlock)resolve) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1493
			 | 
			
			
				+RCT_EXPORT_METHOD(getCallId 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1494
			 | 
			
			
				+                  :(RCTPromiseResolveBlock)resolve) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1495
			 | 
			
			
				+                  reject:(RCTPromiseRejectBlock)reject) { 
			 | 
		
	
		
			
			| 
				1444
			 | 
			
				1496
			 | 
			
			
				   resolve(@{ 
			 | 
		
	
		
			
			| 
				1445
			 | 
			
				1497
			 | 
			
			
				             @"success": @(YES), 
			 | 
		
	
		
			
			| 
				1446
			 | 
			
				1498
			 | 
			
			
				             @"value": [self.rtcEngine getCallId] 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -1540,6 +1592,11 @@ RCT_EXPORT_METHOD(addPublishStreamUrl:(NSDictionary *)options) { 
			 | 
		
	
		
			
			| 
				1540
			 | 
			
				1592
			 | 
			
			
				   [self.rtcEngine setLiveTranscoding:AgoraLiveTranscoding.defaultTranscoding]; 
			 | 
		
	
		
			
			| 
				1541
			 | 
			
				1593
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				1542
			 | 
			
				1594
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				1595
			 | 
			
			
				+// remove publish stream url 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1596
			 | 
			
			
				+RCT_EXPORT_METHOD(removePublishStreamUrl:(NSDictionary *)options) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1597
			 | 
			
			
				+  [self.rtcEngine removePublishStreamUrl:options[@"url"]]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1598
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1599
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				1543
			 | 
			
				1600
			 | 
			
			
				 // set living transcoding 
			 | 
		
	
		
			
			| 
				1544
			 | 
			
				1601
			 | 
			
			
				 RCT_EXPORT_METHOD(setLiveTranscoding:(NSDictionary *)options) { 
			 | 
		
	
		
			
			| 
				1545
			 | 
			
				1602
			 | 
			
			
				   AgoraLiveTranscoding *transcoding = AgoraLiveTranscoding.defaultTranscoding; 
			 |