- From: Jan-Ivar Bruaroey <jib@mozilla.com>
- Date: Wed, 27 Feb 2019 08:44:33 -0500
- To: Philipp Hancke <fippo@goodadvice.pages.de>, public-webrtc@w3.org
On 2/27/19 1:33 AM, Philipp Hancke wrote: > There is a more basic use-case: what arguments should you use in the > getUserMedia call? Simply calling > getUserMedia({audio: true, video: true}) > > will result in NotFoundError if either camera or microphone are not > present. Using enumerateDevices before to determine if a camera and/or > microphone are available is "better" than handling NotFoundError in a > trial-and-error manner. How is it "better"? You mean like this https://stackoverflow.com/a/33770858/918910 ? This seems equivalent to me: try { stream = await navigator.mediaDevices.getUserMedia({video: true, audio: true}); } catch(e) { stream = await navigator.mediaDevices.getUserMedia({audio: true}); } catch(e) { stream = await navigator.mediaDevices.getUserMedia({video: true}); } catch(e) { console.log(e); } > It also avoids two permission prompts which would result from parallel > GUM calls with just audio or video. What I show above gives only one permission prompt in all browsers. > Chrome used to give a best-effort result (i.e. no video track on the > resulting stream if there is no camera) but that turned out to have > other implications because it invalidated the reasonable assumption > that you get a video track when you ask for it or an error. I believe that was Firefox? .: Jan-Ivar :.
Received on Wednesday, 27 February 2019 13:45:01 UTC