@@ -43,6 +43,7 @@ - (instancetype)init {
4343 id <RTCAudioDevice> audioDevice = options.audioDevice ;
4444 id <RTCVideoDecoderFactory> decoderFactory = options.videoDecoderFactory ;
4545 id <RTCVideoEncoderFactory> encoderFactory = options.videoEncoderFactory ;
46+ id <RTCAudioProcessingModule> audioProcessingModule = options.audioProcessingModule ;
4647 NSDictionary *fieldTrials = options.fieldTrials ;
4748 RTCLoggingSeverity loggingSeverity = options.loggingSeverity ;
4849
@@ -69,9 +70,21 @@ - (instancetype)init {
6970 RCTLogInfo (@" Using video encoder factory: %@ " , NSStringFromClass ([encoderFactory class ]));
7071 RCTLogInfo (@" Using video decoder factory: %@ " , NSStringFromClass ([decoderFactory class ]));
7172
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+ }
7588
7689 _peerConnections = [NSMutableDictionary new ];
7790 _localStreams = [NSMutableDictionary new ];
0 commit comments