macOS 10.13.4 Firefox 59.0.2
external USB-audiocard (Edirol UA-25)
During a call there is no audio. That is because there is an external audiocard connected to the mac which is selected as mic input in jitsi.
Currently
Problem: in Firefox the dropdown to switch to the internal mic does not show. The option is greyed out. Using the same computer with same setup (external audiocard connected) in Chromium, the input dropdown does show as expected and user is able to switch to internal mic.


Expected
input selection should also be available in Firefox.
I have some background on the issue at least. Disabling of input selection was done intentionally because, at the time of implementing device selection, firefox did not support multiple mics, https://bugzilla.mozilla.org/show_bug.cgi?id=1238038. Looks like it still may not. From what I recall, which may be wrong, lib-jitsi-meet does mic switch by obtaining a new microphone MediaStream and then destroying the old microphone MediaStream. So there would be a moment where there are two active microphone streams for separate microphones. Instead of refactoring to take firefox's behavior into account, switching was disabled for the sake of time and scope, https://github.com/jitsi/lib-jitsi-meet/blob/39eea17e7e2f8ff4cc273239a6e73f2a149b96e2/JitsiMediaDevices.js#L84.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Thanks, dear stale bot. But this issue is persisting. Even though in a test just now, internal mic is pre-selected, which solves the problem that no audio can be heard if external soundcard is pre-selected. But dropbown is still not selectable. So if I had an external mic plugged into external soundcard, I would still be unable to switch (which is a problem included in initial report), since the dropdown is not available and input cannot be switched.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
not sure if this game is fun to play but ok.
I'm able to reproduce this bug as well. It's nice to be able to change the camera selection, but the microphone selection really needs to be changeable too.
@jeffnm Please see the linked bug above: https://bugzilla.mozilla.org/show_bug.cgi?id=1238038 it's a Firefox issue which we cannot sidestep.
@saghul I understand that jit.si's mic switching method is incompatible with that particular Firefox issue. However, I don't need to have multiple mics captured at the same time, I need to be able to change which mic is being used for recording.
Can't it disconnect my microphone from the call, grab the new microphone and rejoin the call? I'm ok with losing a few seconds of my audio while switching mics. This is something I do at the beginning of a call when the mic I want is not correctly selected.
If mic switching on a live call in Firefox is too much to change just for Firefox's bad handling of input media, it would be nice to have a link or some option to exit the call, change the mic, and rejoin with the correct mic. I couldn't figure out how to do it if that already exists. (Or even be asked which mic I want before I join the call in the first place!) I was stuck with the wrong mic, not matter what I tried.
I hear you. We now (didn't used to, when this was first opened, I think) have the ability to select the devices from the welcome page. Maybe we could do somthing so it at least works there.
I will be working on some device issues these days and can squeeze this.
I just created a PR which will allow editing input device when on the welcome page. I tested and we pass the correct device id to Firefox but for some reason, it doesn't select the correct mic. It needs more debugging, but currently I do not have the resources to do that.
https://github.com/jitsi/jitsi-meet/pull/4161
I'm also having issues selecting the microphone in firefox under linux
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This should be re-opened. The Microphone input is still not selectable for me with an external audio device connected to the mac. The default selection by jitsi however has changed and is now selecting "Internal Microphone".
While that is an improvement (I do not have a mic connected to my external audio device) the original issue persists: Firefox: audio input device is not selectable
Can someone re-open please?
Note that this remains a Firefox limitaation IIRC, sho there is nothing we can do here.
@saghul Sorry you are right. But as this hugely affects the user experience for Firefox users maybe this should be kept open until https://bugzilla.mozilla.org/show_bug.cgi?id=1238038 is fixed?
Sure, no problem.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
ping to keep open
@jallamsetty1 Maybe keep an eye on this when you work on Firefox support improvements.
Sure @saghul !
@saghul
I'm not clear why this is still a problem. Using the MediaDevices API you can enumerate all audio inputs, which would allow you to create the list of devices, and store their IDs.
navigator.mediaDevices.enumerateDevices()
.then(devices => console.log(devices))
Promise { <state>: "pending" }
(4) […]
0: MediaDeviceInfo { deviceId: "8jOKxtZIKInptYd8SWktxEcjNHKozuDAB7A4RURolsU=", kind: "videoinput", label: "FaceTime HD Camera (Built-in)", … }
1: MediaDeviceInfo { deviceId: "sWl7+PKbWFjFtRQuBFrph+yjxHH34BowS1dEZHSPPMg=", kind: "videoinput", label: "HD Pro Webcam C920", … }
2: MediaDeviceInfo { deviceId: "+nhxokUT4+mbL0R+HSByDlLQ1JlBVpRFqzmL72X5fWg=", kind: "audioinput", label: "HD Pro Webcam C920", … }
3: MediaDeviceInfo { deviceId: "oD9AZ5/hrwwO3HuNpDVDAhrPTjJLScZ4nAAfv6tdE1g=", kind: "audioinput", label: "MacBook Pro Microphone", … }
length: 4
<prototype>: [
Once you have the device object you could simply use this to instantiate the appropriate stream from one device (i.e. this issue is probably irrelevant, since it relates to selecting multiple devices at the same time: https://bugzilla.mozilla.org/show_bug.cgi?id=1238038) and establish the input.
It seems that if that Mozilla bug is what you're referencing as holding you back, it's probably because you're taking the approach of trying to establish the stream for all devices before the user has changed the selection.
If you can establish it for the default device (as is done now when joining a new meeting) then you can do the same for a second device; you'd just need to swap the streams.
@methodbox What we are trying to do is draw the input device gain / energy, without switching the call to it. The idea being that the user wouldn't want to switch to a new device until they are sure it's the right one. What you suggest would mean the device would ne changing while the user it's testimg them. That's not what we want here.
@methodbox What we are trying to do is draw the input device gain / energy, without switching the call to it. The idea being that the user wouldn't want to switch to a new device until they are sure it's the right one. What you suggest would mean the device would ne changing while the user it's testimg them. That's not what we want here.
I’m not clear why the currently-in-use input device would need to remain active while the newly selected device is being tested.
The stream could be detached, allow testing on the new device, if the user ultimately selects the same device they started with, establish a new stream.
A new stream would need to be established anyway if a different device is selected, no?
And obviously you don’t want to be picking up sound from both devices at once. While muting the audio element is an option, it seems a viable work-around is simply dropping and establishing streams as needed; it accomplishes the same goal.
I’m not clear why the currently-in-use input device would need to remain active while the newly selected device is being tested.
I think the answer to this one is just "it's easier to implement".
The stream could be detached, allow testing on the new device, if the user ultimately selects the same device they started with, establish a new stream.
That won't work. IIRC only one input device can be active, so we'd have to destroy thre track, and then create a new one. It's not a huge deal, but it's more work.
A new stream would need to be established anyway if a different device is selected, no?
Yes and no. We can replace the existing track with replaceTrack.
And obviously you don’t want to be picking up sound from both devices at once.
Actually I do. We are working on a module to notify you if you are using the wrong microphone, and we can only do that by opening them all and comparing gain / energy levels.
We can discuss workarounds, but at the end of the day this is a Forefox liomitation which they should fix.
We can discuss workarounds, but at the end of the day this is a Forefox liomitation which they should fix.
Now that I agree with 100%. Their implementation is ... terrible at the moment. Thanks for the clarification.
We can discuss workarounds, but at the end of the day this is a Forefox liomitation which they should fix.
They are maybe a Firefox limitation, but other popular tools like Google Hangout for example allow microphone selection without any problem under Firefox.
So I suppose it's possible to fix it by other ways.
Any clue about the possible workarounds? Try to get a look on the Firefox settings to change the default microphone, without any luck.
FYI:
❯ firefox-developer-edition --version
Mozilla Firefox 75.0b7
You can also vote for the bug in Bugzilla.
@PanderMusubi I know there is a bug with Firefox. But as I wrote before, other meeting tools are working properly with the current Firefox version.
Unfortlynatly, I don't have enough knowledge to know how it works, but I assume it's not magic and the other platforms found a way to deal with Firefox and micro selection.
This is why I suggeste to look forward on this cllu.
Is there at least a workaround to select a different microphone? Maybe quit Firefox, remove some configuration file and restart it to be able to make a selection?
The workaround is to either not make the permissions permanent so a jitsi-meet reload asks for permissions each time when enterin a conference (so you can select the mic device each time) or to remove the permissions using the settings drop-down to the left of the URL-bar. Then exit and re-enter the conference or reload the page or disable/re-enable the device (works at least for the camera). Then Firefox asks again for permissions on this device and lets you select another device.
I think it might be a combination of Firefox not allowing "all devices" to be used with single permission but asking for permission on each and every single device and Jitsi not re-requesting the permissions when the audio device is switched.
thanks for the workaround @SkyBeam, removing permissions and reloading worked for me.
It would be good if this was a more prominent recommendation for Firefox users!
@jallamsetty1 Could you find any updates from the Firefox side?
@jallamsetty1 Could you find any updates from the Firefox side?
Unfortunately no, I don't have any updates from them. There is a lot of tech debt for making this work looks like, will check with them again.
A solution from another issue in this project to get audio output
https://github.com/jitsi/jitsi-meet/issues/7669#issuecomment-715989147
_I had the same problem and it is actually possible to select the audio output device on Firefox. The problem is that for some obscure reason this option is disabled in the Firefox configuration by default. Here is how to enable it:
Enter the Firefox config editor by typing about:config in the URL bar.
Proceed despite the warning message that will come up.
Enter "media.setsinkid.enabled" in the search field at the top of the page.
Double click on the entry so that the boolean value switches from "default" or "false" to "true".
That's it. You can close the config tab. From now on you will have the audio output section in the jitsi-meet configuration._
To be able to get audio input selection, in preferences/security an privacy/ audio remove the option for the jitsi server instance and the browser will ask to you form permission and there you can choose which output you want.
Most helpful comment
not sure if this game is fun to play but ok.