The device selection disabled if one selected device is unavailable

Hi,

Lets say I have a laptop with integrated webcam and micro. I used it with jitsi and somehow now the camera isn’t properly detected by the bios. So i plug a new usb webcam. But, problem…
Jitsi-meet prints a message that the device can’t be captured and when i open the device selection dialog its displays ‘Permission denied’ and won’t let me change the device.

The solution is to delete the deviceId stored in local storage. But you cant explain this to a regular user.

How to reproduce:

  • Have 2 webcams and 2 different browsers
  1. Create a meeting with browser 1 that will use camera 1
  2. Join the meeting with browser 2, normally this will use camera 1 and will display an error.
  3. Try to change the capture device to camera 2, the list is disabled with ‘Permission denied’ message.

What you think?

Thanks

Ping @Hristo_Terezov

What operating system are you using?

Windows 7 with Chrome.
But i dont think there could be question of operating system.
I suggest a modification in jitsi-meet that avoids disabling the dropdown device-list when a problem occurs with the current device.

For instance by simply modifiying here the function _renderNoPermission()
here

react\features\device-selection\components\DeviceSelector.web.js

to look like

_renderNoPermission() {
    if (!this.props.devices || !this.props.devices.length) {
        return this._renderNoDevices();
    }

    const items = this.props.devices.map(this._createDropdownItem);
    const defaultSelected = items.find(item =>
        item.value === this.props.selectedDeviceId
    );

    return this._createDropdown({
        items,
        defaultSelected,
        isDisabled: false,
        placeholder: this.props.t('deviceSelection.noPermission')
    });
}

@damencho was recently working on the code related to the devices.

Ping @damencho.