iOS 15 上的 Safari 内嵌视频播放问题

Ant*_*ton 6 safari html5-video ios15

video包含属性设置为包含视频文件的数据 URI 的元素的网页src不会在 iOS 15 上的 Safari 中播放视频。

使用 Safari 开发工具检查设备/模拟器表明浏览器重复发出带有Range: bytes N-M标头的请求,多次读取整个视频文件,导致巨大的内存消耗并最终无法开始播放。

如果视频足够小并且确实能够启动,则播放速度会显得很慢,甚至需要很长时间才能启动。

有解决这个问题的方法吗?

PS 将视频保留在 Data URI 中是我试图解决的任务所固有的,因此请不要建议将视频文件保留为单独的资源:)

tan*_*avo 2

跟踪此问题的 webkit 错误在这里(查看用户名,我怀疑您也在那里报告了该问题): https ://bugs.webkit.org/show_bug.cgi?id=232076

我们使用的解决方法是使用 Service Worker 通过“正常”URL 传递视频数据,即使数据仍然直接从 Javascript 提供。我在该 WebKit bug 上发布了一些 Service Worker 端的示例代码。

服务工作人员确实需要作为单独的资源托管,并且具有相同的 https 来源,所以我知道这不会是每个用例(包括您的 Anton)的解决方案。

不幸的是,我认为没有任何其他解决方法,它看起来只是 Safari 的另一个回归。iOS 15 在这方面表现尤其糟糕。我几乎预计它会是 iOS 16 主题演讲中的一张幻灯片……“Safari 现在速度提高了 25%,播放视频的时间增加了 30%,而且错误比以前多了 35%!”