Open Bug 1850082 Opened 1 year ago Updated 10 months ago

There is no option to use system default audio devices (Microphone and Speaker)

Categories

(Core :: WebRTC: Audio/Video, defect)

Firefox 116
x86_64
Linux
defect

Tracking

()

UNCONFIRMED

People

(Reporter: ginermail, Unassigned, NeedInfo)

References

(Blocks 1 open bug)

Details

Attachments

(14 files)

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/116.0

Steps to reproduce:

I tried to configure default audio devices (Microphone and Speakers) to be system defaults

Actual results:

There were neither options to use system default devices nor Firefox remembers chosen once devices for the future.

Expected results:

I would expect Firefox to use the default system audio devices by default as other browsers and most applications do so that I don't have to configure them every time I open Google Meet or any other web app which is using microphone.

OS: Unspecified → Linux
Hardware: Unspecified → x86_64

The Bugbug bot thinks this bug should belong to the 'Core::Audio/Video: cubeb' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Audio/Video: cubeb
Product: Firefox → Core

Hi Stanislav, sorry you're having a poor experience with Meet in Firefox, and thanks for reaching out!

Configuration is handled by sites, not browsers. The screenshots you show are of Meet, which suggest a UX problem there. I'll reach out to them.

The spec says eumerateDevices() returns mics A, B, and C (where A is the current system default), not Default - A, A, B, and C (where two are the same device). Unfortunately, the latter is a non-standard (mic-only) Chrome & Safari null object pattern that appears to be confusing many sites into skipping proper default handling. I.e. they ALWAYS persist a deviceId, relying on the browser to provide the non-standard null object. This is a bug in the site.

The spec says to use getUserMedia({audio: true}) to get the default mic, not getUserMedia({audio: {deviceId: deviceWithDefaultInTheName.deviceId}}).

IOW, to persist a user's choice for the system default, simply delete the deviceIds from localStorage. It's a UX choice how to represent this (with a "Use System Default" entry in a list, or a ✅, or whatever). This should work in every browser.

Component: Audio/Video: cubeb → WebRTC: Audio/Video

... so that I don't have to configure them every time I open Google Meet ...

Actually when I test Meet in Chrome, I don't see this extra default device in the UX. Instead the word "Default - " seems prepended to whatever the current default device is. I.e. Default - A, B — Instead, I see toast messages when I put on my AirPods (i.e. special application code in Meet) that I don't see in Firefox, which I think is a known problem in Meet that might explain your problem.

Chrome and Chromium show a different picture in my case (exactly what I would expect from Firefox). Attaching some screenshots.

Thanks for the extra screenshots. There might be some variance between platforms.

But again, as mentioned in comment 4, having the browser provide a virtual default microphone is non-standard, and the site should just remove its deviceId instead. I've alerted the Meet team about this.

so that I don't have to configure them every time I open Google Meet

Can you clarify what specifically you are having to configure every time you open Meet? When I use Meet it seems to remember my last used device.

Flags: needinfo?(ginermail)

Also, to rule out a Firefox bug, can you open https://jsfiddle.net/jib1/7yhvdsq5/ and tell me if you get your system default mic?

Flags: needinfo?(ginermail)

Can you clarify what specifically you are having to configure every time you open Meet? When I use Meet it seems to remember my last used device.

Meet sometimes remembers and sometimes not the last device as long as I don't close the browser and don't disconnect my Bluetooth headset but never remembers it if I close the browser and open it again. The OS (Ubuntu 22.04 in my case) switches to a Bluetooth headset automatically when connected and most of software just uses system default. It would be the best if Firefox just did the same.

Attached image List all input devices

(In reply to Jan-Ivar Bruaroey [:jib] (needinfo? me) from comment #10)

Also, to rule out a Firefox bug, can you open https://jsfiddle.net/jib1/7yhvdsq5/ and tell me if you get your system default mic?

I don't see mic of the headset in the list of devices on this page

I don't see mic of the headset in the list of devices on this page

Hmm, that's strange. I see it listed in Meet in comment 1 which uses the same API, presumably also in Firefox and on the same system?

I also see the "Monitor" devices, including "Monitor of Jabra Elite 45h" but no "Jabra Elite 45h", so something's gone wrong.

Paul, any idea what might explain this? Do we filter out any microphone devices?

Flags: needinfo?(padenot)

I don't know why mic visibility would have changed unless it appears disabled.
See about:support#media, which should hopefully list disabled devices.

Attached image about:support#media
Blocks: meet

Time passed and the behaviour has slightly changed.

  1. Now https://jsfiddle.net/jib1/7yhvdsq5/ does show the headset in the list
  2. In many cases (but not all) turning on headset make google meet switch to use mic and speaker of the headset
  3. There is still no option to choose system default devices
Attachment #9370230 - Attachment description: Switching to headset automatically in connecting in many cases → Switching to headset automatically on connect in many cases
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: