Possibly related to: https://bugs.webkit.org/show_bug.cgi?id=133511 (iOS 8 WebGL cannot pass video to texImage2d)
As noted in the WebGL bug, in this use case the fullscreen playback controls are unwanted. If the video is closed, it appears it did render to the canvas2d underneath but this could not be seen, and playback is then paused so it does not continue playing within the canvas2d context.
It works correctly in Chrome for Android, and desktop Chrome, IE11 and Firefox.
Blank screen with fullscreen video playback controls
Video playback within the canvas with no playback controls, which is how Chrome for Android works.
This works as expected on iPad, and it draws as expected on iPhone except the fullscreen controls cover everything. This is not my domain.
Any news on this bug?
Why is it still not assigned?
Technically it shouldn't be very difficult to fix that bug - either enable the 'play-inline' support in the iPhone Safari (like on the iPad) or don't trigger the 'fullscreen playback' when the video itself wasn't added to the DOM (e.g. when the video has no parent, that's typically the case when showing the video indirectly via Canvas or WebGL).
Still reproduces on iOS 8 beta 3.
Still reproduces on iOS 8 beta 4.
Still reproduces on iOS 8.
Still reproduces on iOS 8.3
I'm also trying to upload video frames to texture for a webgl based webapp that we'd like to run on iPhones.
If someone can point me in the right direction as to where in the source tree I might start looking, I'd be happy to report back anything I can find about this issue. I have checked out webkit from https://github.com/WebKit/webkit and have it building / running on an iPhone simulator.
I'm currently looking at HTMLVideoElement and HTMLMediaElement, but not sure I have quite figured out whats going on yet...
I am able to reproduce this bug on iPhone 13 Pro Max using iOS 15.6 (Safari 15.6) using following test case:
Link - https://jsfiddle.net/Lhk3d5yu/show
^I took the test case from URL field via Wayback Archive and changed it into above JSFiddle.
I loaded the test case in the Private Window, it showed website for few seconds and then video appearing behind test and then made it go full-screen black and nothing and I have to come out of full screen.
Just wanted to share updated test results. Thanks!
The issue here is calling `video.play()` which will automatically fullscreen a video on iOS without the `playsinline` attribute. The workaround for this would be to set `video.playsInline = true` before calling `video.play()`.