diff --git a/src/react-components/ui-root.js b/src/react-components/ui-root.js
index 3a1a03da093a67aea456de34a8b6462a8f71aacf..e43e089ceed4ddb98f35486a62647a484b36da5a 100644
--- a/src/react-components/ui-root.js
+++ b/src/react-components/ui-root.js
@@ -278,15 +278,14 @@ class UIRoot extends Component {
 
   micDeviceChanged = async (ev) => {
     const constraints = { audio: { deviceId: { exact: [ev.target.value] } }, video: this.mediaVideoConstraint() };
-    this.setupNewMediaStream(await navigator.mediaDevices.getUserMedia(constraints));
+    await this.setupNewMediaStream(constraints);
   }
 
   setMediaStreamToDefault = async () => {
-    const constraints = { audio: true, video: false };
-    this.setupNewMediaStream(await navigator.mediaDevices.getUserMedia(constraints));
+    await this.setupNewMediaStream({ audio: true, video: false });
   }
 
-  setupNewMediaStream = (mediaStream) => {
+  setupNewMediaStream = async (constraints) => {
     const AudioContext = window.AudioContext || window.webkitAudioContext;
     const audioContext = new AudioContext();
 
@@ -302,6 +301,8 @@ class UIRoot extends Component {
       }
     }
 
+    const mediaStream = await navigator.mediaDevices.getUserMedia(constraints);
+
     const source = audioContext.createMediaStreamSource(mediaStream);
     const analyzer = audioContext.createAnalyser();
     const levels = new Uint8Array(analyzer.fftSize);