我花了很多时间试图弄清楚为什么视频会像这样嵌入:

<video height="256" loop autoplay muted controls id="vid">
         <source type="video/mp4" src="video_file.mp4"></source>
         <source type="video/ogg" src="video_file.ogg"></source>
</video>

一旦页面在FireFox中加载,就开始自动播放,但不能在基于Webkit的浏览器中自动播放。这只发生在一些随机的页面上。到目前为止我还没有找到原因。我怀疑一些未关闭的标签或CMS编辑器创建的大量JS。


当前回答

谷歌刚刚更改了自动播放视频的策略,必须静音

你可以在这里查看

添加静音

<video height="256" loop="true" autoplay="autoplay" controls="controls" id="vid" muted>
         <source type="video/mp4" src="video_file.mp4"></source>
         <source type="video/ogg" src="video_file.ogg"></source>
</video>

其他回答

试试这个:

  <video width="320" height="240"  autoplay muted>
            <source src="video.mp4" type="video/mp4">
  </video>

在Safari iOS上没有任何效果,直到我添加了playsinline属性到视频中

试着交换 自动播放自动播放。

有时它似乎是区分大小写的。这很奇怪,因为它对我来说是自动播放,但前提是我添加了控制

碰巧Safari和Chrome on Desktop不喜欢围绕视频标签的DOM操作。当设置了自动播放属性时,即使在初始页面加载后视频标记周围的DOM发生变化时canplaythrough事件已经触发,它们也不会触发播放顺序。基本上我也有同样的问题,直到我删除了视频标签周围的.wrap() jQuery,之后它就会像预期的那样自动播放。

我在iphone的Safari上播放视频时遇到了一个问题。在video标签中添加playsinline属性可以解决这个问题,而且它是有效的!

<video autoplay muted loop playsinline class="someClass">
  <source src="source.mp4" type="video/mp4">
</video>

你也会在Safari和OSX上遇到这个问题,如果你对这个属性playsinline感到困惑,这里是解释。

移动浏览器,playsinline将播放视频的正确位置,而不是默认的全屏播放。

对于OSX上的Safari浏览器,由于网站默认的“自动播放”选项是“带声音停止媒体”,这种策略也会带来权限问题。

这就是为什么我们需要属性静音。