Bug 209739
Summary: | iOS 13.4 enumerateDevices() does not report the camera after the first call | ||
---|---|---|---|
Product: | WebKit | Reporter: | milen <milen.yordanov> |
Component: | WebRTC | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED DUPLICATE | ||
Severity: | Normal | CC: | youennf |
Priority: | P2 | ||
Version: | Safari 13 | ||
Hardware: | Unspecified | ||
OS: | iOS 13 |
milen
Tested on iPhone 7, iOS 13.4
Open Mobile Safari and go to https://milen-yordanov.github.io/webrtc-ios13_4-enumerateDevices/
The first call to enumerateDevices() reports two devices: videoinput and audioinput.
The second call to enumerateDevices() reports two devices: audioinput and audioinput. There is no videoinput!
The code to reproduce it is as simple as:
await navigator.mediaDevices.enumerateDevices()
await navigator.mediaDevices.enumerateDevices()
See: https://raw.githubusercontent.com/milen-yordanov/webrtc-ios13_4-enumerateDevices/master/index.html
Older iOS 13.x and 12.x did not have this issue.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
youenn fablet
This is a dupe of bug 209417 which is now fixed in WebKit ToT.
*** This bug has been marked as a duplicate of bug 209417 ***
youenn fablet
There are a number of workarounds:
- On iOS, all devices running Safari should have a camera.
- Add a shim to enumerateDevices so as to buffer the result of enumerateDevices until capture is granted/devicechange event is fired.