| Summary: | Add support for speaker selection | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | youenn fablet <youennf> | ||||||||||||||||
| Component: | WebRTC | Assignee: | youenn fablet <youennf> | ||||||||||||||||
| Status: | NEW --- | ||||||||||||||||||
| Severity: | Normal | CC: | annulen, arman.ninoyan, calvaris, cdumez, changseok, csantos, davidswalkabout, dibotero, eric.carlson, esprehn+autocc, ews-watchlist, glenn, gyuyoung.kim, haimomesi, hta, japhet, jer.noble, jose.hernandez, jovanchohan, kangil.han, karlcow, kondapallykalyan, laiz+webkit, lwarlow, michael.hagar, mifenton, oanguenot, pdr, philipj, ryuan.choi, sergio, teodor.atroshenko, tommyw, webkit-bug-importer, webkit, youennf | ||||||||||||||||
| Priority: | P2 | Keywords: | BrowserCompat, InRadar, WPTImpact | ||||||||||||||||
| Version: | WebKit Local Build | ||||||||||||||||||
| Hardware: | Unspecified | ||||||||||||||||||
| OS: | Unspecified | ||||||||||||||||||
| Attachments: |
|
||||||||||||||||||
|
Description
youenn fablet
2020-09-17 02:51:10 PDT
Created attachment 409016 [details]
WIP
Created attachment 409022 [details]
WIP
Created attachment 409024 [details]
WIP
Created attachment 409025 [details]
WIP
Created attachment 409027 [details]
WIP
Created attachment 409029 [details]
WIP
Created attachment 409030 [details]
WIP
*** Bug 179415 has been marked as a duplicate of this bug. *** Comment on attachment 409030 [details] WIP View in context: https://bugs.webkit.org/attachment.cgi?id=409030&action=review > Source/WebCore/ChangeLog:8 > + https://bugs.webkit.org/show_bug.cgi?id=216641 > + > + Reviewed by NOBODY (OOPS!). > + > + MediaDevices now receive non hashed device IDs. I think it would be a good idea to point to the spec here. > Source/WebCore/ChangeLog:9 > + We hash them before exposing them and keep a mapping in WebProcess between hashed audoi output device Ids and the persistent Ids. s/audoi/audio/ > Source/WebCore/ChangeLog:21 > + All these methods can be used based on user gesture. This is unclear, it makes it sound like they are optionally gated on a user gesture. > Source/WebCore/Modules/mediastream/MediaDevices.cpp:227 > + auto groupId = RealtimeMediaSourceCenter::singleton().hashStringWithSalt(newDevice.groupId(), m_groupIdHashSalt); All of the capture classes should now set supportedConstraints.setSupportsGroupId(true) so MediaTrackSupportedConstraints.groupId returns `true` > Source/WebCore/Modules/mediastream/MediaDevices.cpp:356 > + document->topDocument().setDefaultAudioOutputDeviceId(WTFMove(persistentId)); > + m_audioOutputDeviceId = WTFMove(deviceId); It might be better to swap the order of these lines in case a side effect of calling setDefaultAudioOutputDeviceId checks audioOutputDevice() Is there any timeline for this feature support? Support for setSinkId is listed for Safari Tech Preview release 148 at https://developer.apple.com/safari/technology-preview/release-notes/ and it seems the current release is 136 https://webkit.org/blog/category/safari-technology-preview/page/2/ So should this issue have a status other than New? Hi, any news about this feature ? Thanks i advance https://wpt.fyi/results/audio-output/idlharness.https.window.html https://wpt.live/audio-output/idlharness.https.window.html Activating on STP Allow speaker device selection in Experimental features makes 3 more tests green. The 3 remaining are * MediaDevices interface: operation selectAudioOutput(optional AudioOutputOptions) * MediaDevices interface: navigator.mediaDevices must inherit property "selectAudioOutput(optional AudioOutputOptions)" with the proper type * MediaDevices interface: calling selectAudioOutput(optional AudioOutputOptions) on navigator.mediaDevices with too few arguments must throw TypeError It also improves the results on https://wpt.live/audio-output/setSinkId-permissions-policy.https.sub.html Any update on this? |