@@ -43,6 +43,7 @@ - (instancetype)init {
43
43
id <RTCAudioDevice> audioDevice = options.audioDevice ;
44
44
id <RTCVideoDecoderFactory> decoderFactory = options.videoDecoderFactory ;
45
45
id <RTCVideoEncoderFactory> encoderFactory = options.videoEncoderFactory ;
46
+ id <RTCAudioProcessingModule> audioProcessingModule = options.audioProcessingModule ;
46
47
NSDictionary *fieldTrials = options.fieldTrials ;
47
48
RTCLoggingSeverity loggingSeverity = options.loggingSeverity ;
48
49
@@ -69,9 +70,21 @@ - (instancetype)init {
69
70
RCTLogInfo (@" Using video encoder factory: %@ " , NSStringFromClass ([encoderFactory class ]));
70
71
RCTLogInfo (@" Using video decoder factory: %@ " , NSStringFromClass ([decoderFactory class ]));
71
72
72
- _peerConnectionFactory = [[RTCPeerConnectionFactory alloc ] initWithEncoderFactory: encoderFactory
73
- decoderFactory: decoderFactory
74
- audioDevice: audioDevice];
73
+ if (audioProcessingModule != nil ) {
74
+ if (audioDevice != nil ) {
75
+ NSLog (@" Both audioProcessingModule and audioDevice are provided, but only one can be used. Ignoring audioDevice." );
76
+ }
77
+ RCTLogInfo (@" Using audio processing module: %@ " , NSStringFromClass ([audioProcessingModule class ]));
78
+ _peerConnectionFactory = [[RTCPeerConnectionFactory alloc ] initWithBypassVoiceProcessing: NO
79
+ encoderFactory: encoderFactory
80
+ decoderFactory: decoderFactory
81
+ audioProcessingModule: audioProcessingModule];
82
+ } else {
83
+ RCTLogInfo (@" Using audio device: %@ " , NSStringFromClass ([audioDevice class ]));
84
+ _peerConnectionFactory = [[RTCPeerConnectionFactory alloc ] initWithEncoderFactory: encoderFactory
85
+ decoderFactory: decoderFactory
86
+ audioDevice: audioDevice];
87
+ }
75
88
76
89
_peerConnections = [NSMutableDictionary new ];
77
90
_localStreams = [NSMutableDictionary new ];
0 commit comments