New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 865799 link

Starred by 5 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Feature



Sign in to add a comment

A way for enumerateDevices() to show audiooutput devices with labels when user has no cam or mic

Project Member Reported by saeedj@google.com, Jul 20

Issue description

Currently, enumerateDevices() can only show 'audiooutput' devices with labels once we obtain mic permission via gUM.

However, if the user does not have a mic, there is no way for us to obtain permission to enumerate their 'audiooutput' devices.

In Hangouts Meet, we have a settings dialog with a drop down for picking a speaker. We'd like to have this functionality also work for users who don't have a mic but want to join the meeting to listen in.
 
Labels: Pri-2
Owner: guidou@chromium.org
Status: Assigned (was: Untriaged)
Getting audio output labels without microphone permissions is also an important key blocker for being able to ship audio output switcher in web audio applications such at TIDAL, Spotify and SoundCloud. It's a really bad UX experience to worry the user with microphone permissions.
Besides the mentioned impact, this issue also causes problems for the web app of GoToMeeting.

Currently we need to run something similar to

navigator.mediaDevices.getUserMedia({audio: true}).then(console.log).catch(console.error)

to get access to an output device, which will return a DOMException unless you have a mic.

This however works perfectly fine with Firefox, which will open the premission prompt to grant the permission.


Cc: solenberg@chromium.org ar...@chromium.org
The reason we don't ask for mic permission when there are no microphones is that the spec says that if there are no devices, getUserMedia should immediately terminate with NotFoundError. Permission checks come later in the getUserMedia algorithm.
See step  6 in https://w3c.github.io/mediacapture-main/#dom-mediadevices-getusermedia

This said, we are planning to fix this issue by having a separate permission for output devices and having setSinkId() generate a prompt for audio output, if necessary. Unfortunately, no ETA on when this will be completed.

Sign in to add a comment