On iOS 17.4, calling load() on a media element whose src property is set to a blob URL created by URL.createObjectURL() doesn't trigger some events. The issue does not occur when src is set to an HTTP URL. Steps to reproduce: 1. On iOS 17.4 Safari, access https://codepen.io/gustavohenke/pen/KKYzqYr 2. Using the file selector, select a video file on the device. Observe that the log only goes up to loadedmetadata. 3. Play the video. Notice that the log now contains play, waiting, loadeddata, etc. 4. Click "Load Big Buck Bunny". Observe that the log contains loadeddata, canplay, etc just from the call to load() Expected result: The media element behaves the same with both HTTP and blob URLs Actual result: The media element doesn't fire loadeddata, canplay and canplaythrough events
Thank you for the report! Do you happen to know if this worked prior to iOS 17.4?
Yes, seems to be working on iOS 17.3.1.
<rdar://problem/124411454>
It is very doubtful that loading via a blob url worked before 17.4. We only just added support to blob url playback in the last month or so to the WebKit tree. *** This bug has been marked as a duplicate of bug 245428 ***
It's how we've been doing some operations/assertions on videos uploaded to canva.com for about 5 years.