From 805e5acb73bdde4543434817ea9861e1502f1768 Mon Sep 17 00:00:00 2001 From: Greg Fodor <gfodor@gmail.com> Date: Mon, 19 Mar 2018 17:05:06 -0700 Subject: [PATCH] Fix bug when switching mic not closing old streams --- src/react-components/ui-root.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/react-components/ui-root.js b/src/react-components/ui-root.js index 3a1a03da0..e43e089ce 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); -- GitLab