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

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


当前回答

花了两个小时尝试上面提到的所有解决方案。

这是最后对我有用的方法:

var vid = document.getElementById("myVideo");
vid.muted = true;

其他回答

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

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

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

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

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

试试这个:

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

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

var video = document.querySelector('video');
video.muted = true;
video.play()

只有这个解决方案帮助了我,<视频自动播放静音…>…</video>不工作…

我的视频也出现了同样的问题

<video preload="none" autoplay="autoplay" loop="loop">
  <source src="Home_Teaser.mp4" type="video/mp4">
  <source src="Home_Teaser" type="video/webm">
  <source src="Home_Teaser.ogv" type="video/ogg">
</video>

经过搜索,我找到了一个解决方案:

如果我设置“preload”属性为“true”,视频正常启动

我有一个案例,它与不同文件类型的顺序有关。试着改变一下,看看是否有帮助。