Skip to content

Commit 49af0ad

Browse files
authored
ios: Add audioProcessingModule to WebRTCModuleOptions (#13)
1 parent 774f39e commit 49af0ad

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

ios/RCTWebRTC/WebRTCModule.m

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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];

ios/RCTWebRTC/WebRTCModuleOptions.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ NS_ASSUME_NONNULL_BEGIN
88
@property(nonatomic, strong, nullable) id<RTCVideoDecoderFactory> videoDecoderFactory;
99
@property(nonatomic, strong, nullable) id<RTCVideoEncoderFactory> videoEncoderFactory;
1010
@property(nonatomic, strong, nullable) id<RTCAudioDevice> audioDevice;
11+
@property(nonatomic, strong, nullable) id<RTCAudioProcessingModule> audioProcessingModule;
1112
@property(nonatomic, strong, nullable) NSDictionary *fieldTrials;
1213
@property(nonatomic, assign) RTCLoggingSeverity loggingSeverity;
1314

0 commit comments

Comments
 (0)