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

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


当前回答

在React + Chrome中,最好导入视频,而不是将其作为src给。

import React from 'react';
import styled from 'styled-components';
import video from './videos.mp4';
const StyledVideo = styled.video`
width: 100%;
height: 100vh;
object-fit: cover;
`
const BackgroundVideo = () => {
return (
    <StyledVideo autoPlay loop muted>
        <source src={video} type="video/mp4" />
    </StyledVideo>
);
}

还记得

视频在同一个目录下,导入即可。 要自动播放,视频在背景,使用自动播放和静音道具都有。

其他回答

我解决了同样的问题,

$(window).on('pageshow',function(){
    var vids = document.querySelectorAll('video');
    for (var i = 0; i < vids.length;){
        vids[i].play();
    }
})

您必须在页面显示后启动视频。

对我来说,问题是静音属性需要添加到视频标签中。例如:

<video width="1920" height="1980" src="video/Night.mp4"
type="video/mp4" frameborder="0" allowfullscreen autoplay loop
muted></video>`

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

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

你可以在这里查看

添加静音

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

Chrome不允许在打开声音的情况下自动播放视频,所以请确保为视频标签添加静音属性

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