Bug 260345
Summary: | navigator.mediaDevices.getUserMedia() requires playsinline on (hidden) video element to work on iOS | ||
---|---|---|---|
Product: | WebKit | Reporter: | Nico Weber <thakis> |
Component: | Media | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Normal | CC: | jer.noble, karlcow, webkit-bug-importer |
Priority: | P2 | Keywords: | BrowserCompat, InRadar |
Version: | Other | ||
Hardware: | iPhone / iPad | ||
OS: | Unspecified |
Nico Weber
Repro: https://github.com/nico/hack/blob/1e234e3a12a82d/webgl/cam.html , but the simpler https://jsfiddle.net/kw8fbcma/4/ probably also works if you delete the `video.playsInline = true;` on line 7.
WebKit/iOS is the only engine that requires `playsinline` for this to work. Without it, Safari/iOS only shows the first frame. With it, it shows a continuous webcam feed (with some color effect on top).
Things work fine in Safari/Mac (version 16.5, default on macOS 13.4), in Firefox/Mac, and in Chrome/Mac and Chrome/Android: There, you get a continuous webcam feed even without `playsinline`.
Given that the video element isn't even visible, maybe `playsinline` could be made not required for navigator.mediaDevices.getUserMedia(), for better web compat? Maybe even if navigator.mediaDevices.getUserMedia() goes to a visible video element?
(Note that I'm filing this as a private person, even though I use my old @chromium.org webkit.org account.)
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/114379311>