Simultaneously accessing a microphone through Firefox and Teams app fails
Categories
(Core :: WebRTC: Audio/Video, defect)
Tracking
()
People
(Reporter: tudore, Unassigned)
Details
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:128.0) Gecko/20100101 Firefox/128.0
Steps to reproduce:
I am a web developer working in speech technology. We have a website that accesses a client's microphone to allow them to speak. I have found a bug wherein, if Firefox has access to the user's microphone on a Mac, then the microphone will not work Teams meetings even when it is correctly selected, permissions are set, and the mic is unmuted. I ran a test with a team mate to confirm that the mic stops working in teams at the exact moment it is enabled in Firefox.
Steps to reproduce (see software specs below):
- Start a microsoft teams call
- Go to a website that accesses a microhpone in firefox (e.g. portal.speechmatics.com, which is what I was developing when the issue occurred)
- Make sure the microphone is being accessed by Firefox
- Try to speak in teams
System specs:
OS: Sonoma 14.5
Browser: Firefox 128.0.3 (64-bit)
Teams: Version 24180.210.3001.6635 (24180.210.3001.6635)
Actual results:
The microsoft teams call does not detect any audio on my mic and my teammates cannot hear me. I made sure all permissions were set, my mic was selected and not muted. I was able to specify that the teams sound dropped out the moment the mic was accessed in Firefox.
Expected results:
I would expect the selected microphone to work in both settings at the same time. I know that this is the case at least for Chrome.
I don't know if this is intentional behaviour for security reasons or something to do with the system itself. I cannot say for sure whether it is an issue with Teams, or Firefox, or a combination of both. I will separately report this issue to the Microsoft team in case it is an issue on their end.
I forgot to mention before, but worth noting that I am using the Teams app, not Teams in the browser
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Comment 2•1 year ago
|
||
Do you know if this scenario works in other browsers like Chrome?
Updated•1 year ago
|
Comment 3•1 year ago
|
||
Also has this worked in the past?
Hi Jim,
I can confirm it works fine in Chrome, haven't checked the other browsers. I don't know for sure if it's worked in the past for firefox, but I can say that I've not noticed the problem occur in the past - at least not for my setup - and I know that some of the sales people at our company run the microphone in the browser at the same time as being on a Teams without any trouble using Chrome.
Comment 5•1 year ago
|
||
In the Teams app I assume you are using the builtin microphone of a Macbook.
I also assume it happens with Safari and Teams.
If those assumptions hold then it's known.
One could argue it's a Mac issue or a Teams app issue. I'd lean on the former. Note I filed this with Apple in March as FB13697689 but haven't yet heard back.
It happens because we open the device with a VoiceProcessingIO audio unit. The symptoms of doing so I described a bit here. TL;DR whenever VoiceProcessingIO is present on the system the audio server adds some extra channels to the input stream of the builtin device. It consists of a mic array on modern macbooks so it may well be one channel per mic. The volume is very low though. Perhaps Teams could solve it by mixing and amplifying those channels, but I haven't tested that to say for sure. We solved it by forcing the use of VoiceProcessingIO for builtin mics. Multiple concurrent such units work fine.
NB to observe this I wrote a little CoreAudio traversal tool which when run per the below (you need rust) produces (with uninteresting things stripped):
$ cargo run --bin traversal -- --include-all --use-vpio
(...)
├╼ AudioObjectID: 94
│ ├╼ BaseClass (Known): "AudioObject"
│ ├╼ Class (Known): "AudioDevice"
│ ├╼ Owner: true
│ ├╼ Name: "MacBook Pro Microphone"
│ ├╼ Manufacturer: "Apple Inc."
│ ├╼ DeviceUID: "BuiltInMicrophoneDevice"
│ ├╼ ConfigurationApplication: "com.apple.audio.AudioMIDISetup"
│ ├╼ DeviceUID: "BuiltInMicrophoneDevice"
│ ├╼ ModelUID: "Digital Mic"
│ ├╼ TransportType: "BuiltIn"
│ ├╼ (...)
│ ├╼ Input Streams: [95]
│ ├╼ Output Streams: []
│ ├╼ (...)
│ ├╼ AudioObjectID: 95
│ │ ├╼ BaseClass (Known): "AudioObject"
│ │ ├╼ Class (Known): "AudioStream"
│ │ ├╼ Owner: true
│ │ ├╼ Name: ""
│ │ ├╼ Manufacturer: "Apple Inc."
│ │ ├╼ IsActive: true
│ │ ├╼ Direction: "Input"
│ │ ├╼ TerminalType: "0x0201"
│ │ ├╼ StartingChannel: 1
│ │ ├╼ Input Latency: 1439
│ │ ├╼ Output Latency: 1439
│ │ ├╼ VirtualFormat: AudioStreamBasicDescription {
│ │ │ (...)
│ │ │ mChannelsPerFrame: 3,
│ │ │ }
(...)
Note that without --use-vpio it will report mChannelsPerFrame: 1 for the builtin mic, unless another app is using VoiceProcessingIO.
Okay, thanks for the explanation! Hopefully, Apple will get round to taking a look at this some time.
Description
•