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

标签 safari html5-video ios15

包含 video 的网页带有 src 的元素设置为包含视频文件的数据 URI 的属性不会在 iOS 15 上的 Safari 中播放视频。
使用 Safari Dev Tools 检查设备/模拟器表明浏览器重复发出请求 Range: bytes N-M头,多次读取整个视频文件,导致巨大的内存消耗并最终无法开始播放。
如果视频足够小并且确实能够开始播放,则播放会显得缓慢,甚至需要花费大量时间才能开始。
这个问题有什么解决方法吗?
附言将视频保存在数据 URI 中是我尝试解决的任务所固有的,因此请不要建议将视频文件作为单独的资源保存:)

最佳答案

跟踪此问题的 webkit 错误在这里(查看我怀疑您也在那里报告的用户名):
https://bugs.webkit.org/show_bug.cgi?id=232076
我们使用的解决方法是使用 Service Worker 通过“普通” URL 传送视频数据,即使数据仍然直接从 Javascript 提供。我在那个 WebKit 错误上发布了一些 Service Worker 端的示例代码。
Service Worker 确实需要作为单独的资源托管,并且具有相同的 https 来源,所以我知道这不会是每个用例(包括你的 Anton)的解决方案。
不幸的是,我认为没有任何其他解决方法,它看起来像是又一次 Safari 回归。 iOS 15 对此尤其不利。我几乎希望它成为 iOS 16 主题演讲中的幻灯片……“Safari 现在速度提高了 25%,播放视频的时间增加了 30%,而且现在的错误比以往任何时候都多 35%!”

关于iOS 15 上的 Safari 内联视频播放问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69595503/

相关文章:

javascript - 在 iOS 的 javascript 中禁用长按振动

javascript - 当前时间和开始时间(source 标签中的 startat 属性)匹配时,如何播放视频?

javascript - 我的视频实现在 Firefox 和 Safari 中不起作用;只有 Chrome

xcode - 归档时 Kingfisher Swift 编译器错误

css - 在 Safari 中使用 -webkit-perspective 时选中/单选框消失

javascript - 按钮在 iPhone 上的 Safari 中不起作用

javascript - 使用 Javascript/CSS 的 Safari 风格标签

ffmpeg - 将 rtsp 流式传输到 Html5 视频标签

swift - 如何在 iOS 15 上使用 UIWindowScene.windows?

scroll - iOS 15 上 safari 地址栏的 CSS 问题