Re: [mediacapture-main] Bug in spec: circular dependency for enumerateDevices() (#709)

Mozilla browsers do not have the same issue as Chromium, Chrome browsers, as Nightly and Firefox provide a drop-down list of devices available for capture at the UI prompt, including monitor devices. 

However, that still requires calling `getUserMedia({audio: true})` _twice_ if we are using _only code_ and not the prompt because we do not have the `deviceId` at point and we have not yet called `enumerateDevices()`, and the specification does not mandate any uniform UI for initial device selection.

Thus, if the specification is adjusted to `enumerateDevices()` being the entry point for device selection and capture, once permission is granted to select _all_ device(**_s_**) _initially_ we can then proceed with actually capturing media. 

This can be accomplished by using a very basic `<select multiple>` HTML element or equivalent using GTK or Qt, etc.

```
    <select multiple>
      <option>a</option>
      <option>b</option>
    </select>
```

which is simple enough to be specified and uniformly implemented. 

Flow-chart:

1. `enumerateDevices()`
2. Select one or more devices, audio or video
3. _Only_ the selected devices can be captured at subsequent calls to `getUserMedia(<constraints>)` during the session _unless_ `enumerateDevices()` is executed again to expand or limit the selected exposed devices. Constraints including `exact` are limited to only the selected devices, else, if necessary throw exception _then_, when the device to capture is _not_ within the list selected by the user.

The above algorithm _should_ resolve any ambiguities as to which devices are selected by user and which devices are exposed for the session.

-- 
GitHub Notification of comment by guest271314
Please view or discuss this issue at https://github.com/w3c/mediacapture-main/issues/709#issuecomment-672998209 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 12 August 2020 17:06:08 UTC