- From: Hongchan Choi via GitHub <sysbot+gh@w3.org>
- Date: Thu, 30 Sep 2021 14:18:48 +0000
- To: public-webrtc@w3.org
hoch has just created a new issue for https://github.com/w3c/mediacapture-output: == Adding "subkind" in MediaDeviceInfo (for detection headphones) == ## Summary Adds `.subkind` field `MediaDeviceInfo` to indicate the nature of the output device, specifically for **personal listening devices**. (e.g. headphones, headset, or earbuds) ### Potential use cases: - An application can dynamically change the audio processing model according to the number of channels of the reproduction device. (e.g. 5.1 channels to 2 channels) - An application can use the binaural audio (e.g. HRTF) format for the 3D spatialization when a personal listening device is detected. - The audio content can be enhanced with the “personalized profile” when a personal listening device is detected. (e.g. loudness or equalizer setting) - Some parts of audio content can be omitted on a non-personal listening device. ## Proposal ```webidl [Exposed=Window, SecureContext] partial interface MediaDeviceInfo { readonly attribute MediaDeviceSubkind subkind; }; enum MediaDeviceSubkind { "unknown", "headphones", "speakers" }; ``` ## Example ```js let oldDeviceList_ = []; const onDeviceChange = async (event) => { const newDeviceList = await navigator.MediaDevices.enumerateDevices(); const newDeviceInfo = detectNewDevice(oldDeviceList_, newDeviceList); if (newDeviceInfo && newDeviceInfo.kind === 'audiooutput' && newDeviceInfo.subkind === 'headphones') { useBinauralAudio(newDeviceInfo); } oldDeviceList_ = newDeviceList; } const detectNewDevice = (oldDeviceList, newDeviceList) => { // Compare two device lists and return a MediaDeviceInfo object if there is // a newly detected device in |newDeviceList|. }; ``` ## Privacy Concerns This information is already guarded by an explicit user permission via `getUserMedia()`. Note that when the permission is granted the device information exposed by `MediaDevices.enumerateDevices()` call is already abundant. (e.g. device name, unique ID, device kind) The device information obtained from `MediaDevices.enumerateDevices()` without a permission does **NOT** expose this field. Please view or discuss this issue at https://github.com/w3c/mediacapture-output/issues/125 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Thursday, 30 September 2021 14:18:50 UTC