Chrome 自动播放拦截器停止了我的视频

Chrome Autoplay Blocker stops my video

由于 Chrome 的新自动播放拦截器,我网站上的自动播放背景英雄最近停止工作。没有音频所以我很困惑为什么...请协助。

www.homecareassistancemontreal.ca

它停止了,因为 Chrome 不希望在没有用户直接同意(例如启动它)的情况下启动任何发声视频。如果您希望视频自动播放,您必须确保它已静音。

为此,您必须将 muted 属性添加到您的 <video>

<video muted>
  <source src="movie.mp4" type="video/mp4">
  Your browser does not support the video tag.
</video>

You can read more about this here.

视频必须静音。

<video muted>
 <source src="movie.mp4" type="video/mp4">
 Your browser does not support the video tag.
</video>

我最近遇到的一个问题 Chrome 是,如果您通过 JavaScript 添加视频元素并将静音属性设置为 true。如果您使用 .setAttribute,Google 将阻止播放。请改用点符号。

不好

VideoElement.setAttribute('muted', true);

VideoElement.muted = true;

有一个聪明的黑客可以毫无问题地自动播放有声视频:

navigator.mediaDevices.getUserMedia({ audio: true }).then(function (stream) {
    
    video.play(); // play your media here

    // stop microphone stream acquired by getUserMedia
    stream.getTracks().forEach(function (track) { track.stop(); });
});

它会询问用户的麦克风权限(chrome 中只有第一次),他们必须单击“允许”,然后您才可以播放任何有声的东西。它之所以有效,是因为只要您正在捕获任何内容,您就可以播放所有内容,然后在媒体开始播放时停止麦克风流。