@@ -51,6 +51,11 @@ - (NSDictionary*)defaultVideoConstraints {
51
51
return @{@" minWidth" : @" 1280" , @" minHeight" : @" 720" , @" minFrameRate" : @" 30" };
52
52
}
53
53
54
+ - (NSDictionary *)defaultAudioConstraints {
55
+ return @{};
56
+ }
57
+
58
+
54
59
- (RTCMediaConstraints*)defaultMediaStreamConstraints {
55
60
RTCMediaConstraints* constraints =
56
61
[[RTCMediaConstraints alloc ] initWithMandatoryConstraints: [self defaultVideoConstraints ]
@@ -114,7 +119,7 @@ - (void)getUserAudio:(NSDictionary*)constraints
114
119
mediaStream : (RTCMediaStream*)mediaStream {
115
120
id audioConstraints = constraints[@" audio" ];
116
121
NSString * audioDeviceId = @" " ;
117
-
122
+ RTCMediaConstraints *rtcConstraints;
118
123
if ([audioConstraints isKindOfClass: [NSDictionary class ]]) {
119
124
// constraints.audio.deviceId
120
125
NSString * deviceId = audioConstraints[@" deviceId" ];
@@ -123,11 +128,12 @@ - (void)getUserAudio:(NSDictionary*)constraints
123
128
audioDeviceId = deviceId;
124
129
}
125
130
131
+ rtcConstraints = [self parseMediaConstraints: audioConstraints];
126
132
// constraints.audio.optional.sourceId
127
- id optionalVideoConstraints = audioConstraints[@" optional" ];
128
- if (optionalVideoConstraints && [optionalVideoConstraints isKindOfClass: [NSArray class ]] &&
133
+ id optionalConstraints = audioConstraints[@" optional" ];
134
+ if (optionalConstraints && [optionalConstraints isKindOfClass: [NSArray class ]] &&
129
135
!deviceId) {
130
- NSArray * options = optionalVideoConstraints ;
136
+ NSArray * options = optionalConstraints ;
131
137
for (id item in options) {
132
138
if ([item isKindOfClass: [NSDictionary class ]]) {
133
139
NSString * sourceId = ((NSDictionary *)item)[@" sourceId" ];
@@ -137,6 +143,8 @@ - (void)getUserAudio:(NSDictionary*)constraints
137
143
}
138
144
}
139
145
}
146
+ } else {
147
+ rtcConstraints = [self parseMediaConstraints: [self defaultAudioConstraints ]];
140
148
}
141
149
142
150
#if !defined(TARGET_OS_IPHONE)
@@ -146,7 +154,8 @@ - (void)getUserAudio:(NSDictionary*)constraints
146
154
#endif
147
155
148
156
NSString * trackId = [[NSUUID UUID ] UUIDString ];
149
- RTCAudioTrack* audioTrack = [self .peerConnectionFactory audioTrackWithTrackId: trackId];
157
+ RTCAudioSource *audioSource = [self .peerConnectionFactory audioSourceWithConstraints: rtcConstraints];
158
+ RTCAudioTrack* audioTrack = [self .peerConnectionFactory audioTrackWithSource: audioSource trackId: trackId];
150
159
LocalAudioTrack *localAudioTrack = [[LocalAudioTrack alloc ] initWithTrack: audioTrack];
151
160
152
161
audioTrack.settings = @{
0 commit comments