[mediacapture-output] Enumeration of output devices and permission model

aboba has just created a new issue for https://github.com/w3c/mediacapture-output:

== Enumeration of output devices and permission model ==
I have recently gotten an inquiry from a developer attempting to utilize the [Audio Devices API](https://www.w3.org/TR/audio-output/) to select  an output audio device in a situation where there are no input devices (e.g. no microphone or camera).

To enumerate the output devices, hey are calling `MediaDevices.enumerateDevices` to obtain `MediaDeviceInfo` relating to the devices and then once the user has selected an output device, `HTMLMediaElement.setSinkId(deviceId)` to set the output device.

Here is the catch. To provide the user with an intelligible list of output devices to select, the `label` attribute is needed.  As noted in Section 9.2.1 of [Media Capture and Streams](https://w3c.github.io/mediacapture-main/#access-control-model):

     The algorithm described above means that the access to media device information depends on 
     whether or not permission has been granted to the page's origin.

     If no such access has been granted, the MediaDeviceInfo dictionary will contain the deviceId, kind, 
     and groupId.

     If access has been granted for a media device, the MediaDeviceInfo dictionary will contain the 
    deviceId, kind, label, and groupId.

So the `label` attribute can only be obtained if permission has been granted. However, in a situation where there are no input devices, requesting access to the user's (non-existent) microphone and camera is problematic.

Was this interaction intentional? 

Please view or discuss this issue at https://github.com/w3c/mediacapture-output/issues/71 using your GitHub account

Received on Sunday, 1 July 2018 16:15:08 UTC