From a8ba441800a405ec97cd9aadf767b41e8831d0f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Depenbrock?= Date: Wed, 7 Sep 2022 10:22:40 +0200 Subject: [PATCH] - do not set mandatory & optional parameters, when used in web (#164) - web is not allowing it - adjusted logic to use deviceId over optional parameters in web --- lib/src/track/options.dart | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/src/track/options.dart b/lib/src/track/options.dart index a985850..8d3d1ac 100644 --- a/lib/src/track/options.dart +++ b/lib/src/track/options.dart @@ -199,8 +199,12 @@ class AudioCaptureOptions extends LocalTrackOptions { @override Map toMediaConstraintsMap() { - var constraints = { - 'optional': >[ + var constraints = {}; + + /// 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'] = >[ {'echoCancellation': echoCancellation}, {'googDAEchoCancellation': echoCancellation}, {'googEchoCancellation': echoCancellation}, @@ -211,8 +215,8 @@ class AudioCaptureOptions extends LocalTrackOptions { {'googAutoGainControl': autoGainControl}, {'googHighpassFilter': highPassFilter}, {'googTypingNoiseDetection': typingNoiseDetection}, - ], - }; + ]; + } if (deviceId != null) { if (kIsWeb) {