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

<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。


当前回答

尝试一下,这是简单和简短的,它与我的代码工作,而我有视频全屏和其他元素后面,我只是使用z-index -1;

    <video autoplay loop id="myVideo">

其他回答

谷歌更新了自动播放策略。自动播放只能在静音模式下工作。 查看链接https://developers.google.com/web/updates/2017/09/autoplay-policy-changes

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

试试这个:

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

我通常都是这么做的。循环、控件和自动播放不需要值,它们是布尔属性。

我能得到的最好的修复是在</video>之后添加这段代码

<script>
    document.getElementById('vid').play();
</script>

...虽然不漂亮,但还是管用的。

更新 最近许多浏览器只能自动播放视频的声音关闭,所以你需要添加静音属性的视频标签

<video autoplay muted>
...
</video>

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