18910140161

html-Safari iOS 15视频问题-堆栈溢出

顺晟科技

2022-10-19 12:27:36

139

自从我下载了iOS15后,我页面上的视频不再工作(在Safari中)。我使用以下代码嵌入视频。

<video id="video" autoplay="true" loop="true" muted="true" playsinline="true">
    <source src="media/video.mp4" type="video/mp4">
</video>

如果我在Safari设置中停用“GPU进程:媒体”,一切都会像以前一样工作。

必须以不同的方式嵌入视频吗?


顺晟科技:

您可以使用以下方法修复黑屏:

我使用HTML Canvas元素作为视频源来发布视频。我得到的只是一个黑屏,有时第一帧加载,但最终还是黑屏。

我显式设置的唯一两个属性是playsinlinemuted,下面是相同的代码片段:

<video id="video" autoplay="true" loop="true" muted="true" playsinline="true">
    <source src="media/video.mp4" type="video/mp4">
</video>

在呈现之后,我得到了下面的结果:

<video id="video" autoplay="true" loop="true" muted="true" playsinline="true">
    <source src="media/video.mp4" type="video/mp4">
</video>

但是自从最近的操作系统更新后,这个问题似乎得到了解决。我在以下场景中测试了我的视频通话应用程序: 铬→铬→按预期工作。 Chrome→Safari→按预期工作。 Safari→Safari→按预期工作。

版本详细信息: 铬-100.0.4896.75 Safari-15.4 Mac OS-12.3.1

要在iOS设备上正确服务,视频必须能够被请求,即使是苹果指定的部分。因此,必须在承载它们的服务器上启用“字节范围支持”:https://discussions.apple.com/thread/4119538?page=2

因为投诉的数量,iPhones没有 可以播放一些播客,苹果现在需要服务器您 将媒体文件放置在启用“字节范围支持”的位置上- 基本上,这意味着在 时间,这是iPhone所需要的。您应该用您的 他们支持的托管服务:如果他们不(或不知道) 实际情况)您应该找到另一个托管服务。

另外,如果将Cloudflare用作CDN服务,并且服务器上启用了gzip压缩,则“Accept-Ranges”标头不会由Cloudflare转发,视频也不会得到正确服务:因此有两种解决方案:

  1. 在服务器上完全禁用gzip压缩。
  2. 在服务器上启用gzip压缩并添加到.htaccess文件中,以便不压缩.mp4文件。此解决方案适用于任何视频格式。

我对此做了一些实验,发现当我们暂停并播放时,视频将开始工作。

<video id="video" autoplay="true" loop="true" muted="true" playsinline="true">
    <source src="media/video.mp4" type="video/mp4">
</video>

这不是一个完美的解决方案,而是使其工作的变通办法。

只需将标记包起来即可。我猜你把你的标签定位好了或者。这似乎有一个bug。定位包装器/而不是元素似乎有所帮助。为video元素提供一个。

也可能会有所帮助
  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航