让 Safari 浏览器自动播放视频?

Geting Safari browsers to autoplay videos?

我有一个 Rails 5.2.2 应用程序,可以显示带有自动播放功能的短视频序列。音轨已从视频中删除。

<body>
  <div>
    <header>
      <video autoplay loop muted playsinline>
        <source src="/assets/.../my_video.mp4" type="video/mp4">
      </video>
    </header>
  </div>
</body>

移动设备上的 Chrome、Firefox 和 Safari 可以很好地自动播放视频。但在 MacOS Safari 浏览器中它不会。

suggests that muting this video should be enough, but it seems not to be in my case. A middleware change 也有人提出,但答案已有 6 年历史,仅被标记为概念验证。

将上面的 video 标记更改为:

<video autoplay loop muted playsinline poster="/assets/.../my_video.mp4">
  ...
</video>

似乎解决了问题,但我很难理解为什么,也很难理解我是否真的解决了问题。我不明白实际播放视频的两个参考资料中的哪一个。谁能解释一下?

您的原始 HTML5 看起来不错,下面的测试视频已经过测试并在 MacOS 11.1 和 safari 14.0.2 中自动播放。

<body>
  <div>
    <header>
      <video autoplay loop muted playsinline>
        <source src="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4
" type="video/mp4">
      </video>
    </header>
  </div>
</body>

自动播放规则会随着时间的推移而改变,因此值得检查您是否拥有最新版本的 OS 和 Safari。

如果您的视频仍然无法自动播放,则可能是视频本身存在问题,或者您的框架使用最终生成的 HTML5 代码生成代码。如果问题仍然存在,如果可能的话,值得添加视频的最终浏览器源 div。