toMediaConstraintsMap method
override
Implementation
@override
Map<String, dynamic> toMediaConstraintsMap() {
final constraints = <String, dynamic>{};
if (Native.bypassVoiceProcessing) {
constraints['optional'] = <Map<String, dynamic>>[
<String, dynamic>{'googEchoCancellation': false},
<String, dynamic>{'googEchoCancellation2': false},
<String, dynamic>{'googNoiseSuppression': false},
<String, dynamic>{'googNoiseSuppression2': false},
<String, dynamic>{'googAutoGainControl': false},
<String, dynamic>{'googHighpassFilter': false},
<String, dynamic>{'googTypingNoiseDetection': false},
<String, dynamic>{'noiseSuppression': false},
<String, dynamic>{'echoCancellation': false},
<String, dynamic>{'autoGainControl': false},
<String, dynamic>{'voiceIsolation': false},
<String, dynamic>{'googDAEchoCancellation': false},
];
} else {
/// in we platform it's not possible to provide optional and mandatory parameters.
/// deviceId is a mandatory parameter
if (!kIsWeb || (kIsWeb && deviceId == null)) {
constraints['optional'] = <Map<String, dynamic>>[
<String, dynamic>{'echoCancellation': echoCancellation},
<String, dynamic>{'noiseSuppression': noiseSuppression},
<String, dynamic>{'autoGainControl': autoGainControl},
<String, dynamic>{'voiceIsolation': noiseSuppression},
<String, dynamic>{'googDAEchoCancellation': echoCancellation},
<String, dynamic>{'googEchoCancellation': echoCancellation},
<String, dynamic>{'googEchoCancellation2': echoCancellation},
<String, dynamic>{'googNoiseSuppression': noiseSuppression},
<String, dynamic>{'googNoiseSuppression2': noiseSuppression},
<String, dynamic>{'googAutoGainControl': autoGainControl},
<String, dynamic>{'googHighpassFilter': highPassFilter},
<String, dynamic>{'googTypingNoiseDetection': typingNoiseDetection},
];
}
}
if (deviceId != null && deviceId!.isNotEmpty) {
if (kIsWeb) {
if (isChrome129OrLater()) {
constraints['deviceId'] = {'exact': deviceId};
} else {
constraints['deviceId'] = {'ideal': deviceId};
}
} else {
constraints['optional'].cast<Map<String, dynamic>>().add(<String, dynamic>{'sourceId': deviceId});
}
}
return constraints;
}