Добавление фонового видео с помощью React?

Я пытаюсь создать простую целевую страницу, содержащую полноэкранное фоновое изображение, которое будет воспроизводиться сразу после загрузки содержимого.

Есть ли способ сделать это, используя React или CSS внутри React?

Я пробовал использовать модуль взаимодействия npm, но я не могу на всю жизнь понять, как загрузить мои компоненты React над видео. Видео продолжает загружаться по моим другим компонентам.

Ответы

Ответ 1

На самом деле, я смог получить код Trevor, который отлично работает в моем проекте. Мне нужно было добавить закрывающий тег к исходному элементу, например.

<video id="background-video" loop autoPlay>
    <source src="http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4" type="video/mp4" />
    <source src="http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4" type="video/ogg" />
    Your browser does not support the video tag.
</video>

Также обратите внимание, что "автовоспроизведение" должно быть изменено на "autoPlay", или React выдаст вам предупреждение, а не автоматически воспроизведет видео. Вне этих двух изменений копирование и вставка кода должны работать нормально.

Пример ES6/Babel:

'use strict';

import React, {Component} from 'react';

class Example extends Component {
    constructor (props) {
        super(props);

        this.state = {
            videoURL: 'http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4'
        }
    }

    render () {
        return (
            <video id="background-video" loop autoPlay>
                <source src={this.state.videoURL} type="video/mp4" />
                <source src={this.state.videoURL} type="video/ogg" />
                Your browser does not support the video tag.
            </video>
        )
    }
};

export default Example;

Ответ 2

import sample from './sample.mp4';

<video className='videoTag' autoPlay loop muted>
    <source src={sample} type='video/mp4' />
</video>

Спасибо, что "автовоспроизведение" должно быть изменено на "autoPlay" из Mr_Antivius. Это альтернативный способ воспроизведения видео в React. Меня устраивает. Помните, что файл sample.mp4 находится в том же каталоге JS файла.

Ответ 3

Я думаю, что что-то вроде этого будет работать:

#background-video{

height: 100%;
width: 100%;
float: left;
top: 0;
padding: none;
position: fixed; /* optional depending on what you want to do in your app */


}
<video id="background-video" loop autoplay>
  <source src="http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4" type="video/mp4">
  <source src="http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4" type="video/ogg">
  Your browser does not support the video tag.
</video>

Ответ 4

Чтобы добавить ответ Mr_Antivius, вам теперь нужно "отключить", включенное в тег видео, наряду с автозапуском. Теперь это изменилось с Chrome V66. Видео не будет воспроизводиться автоматически без него.