Reactjs перезапускает видео при нажатии аудиоплеера

Я использую response-response-audio-player в сочетании с video-react. Когда кто-то переходит к следующему элементу списка воспроизведения аудио, я хочу возобновить воспроизведение видео.

Поскольку оба эти компонента являются сторонними и не имеют отношения Родитель -> Сиблинг, я не уверен, как инициировать событие для перезапуска видео, когда событие происходит в аудиоплеере.

Исходя из приведенного ниже, у него есть свойство onMediaEvent, но я не понимаю, как эффективно написать restartVideo. Спасибо за любые указатели.

import React, { Component } from 'react';
import axios from 'axios';
import { Button, PageHeader } from 'react-bootstrap';
import { Player, ControlBar, ReplayControl,
  ForwardControl, CurrentTimeDisplay,
  TimeDivider, PlaybackRateMenuButton, VolumeMenuButton
} from 'video-react';
var AudioPlayer = require('react-responsive-audio-player');



class App extends React.Component {
    render() {
      return (
      <div>
        <PageHeader>Video Player <small>demo</small></PageHeader>
        <VideoPlayer />
        <AudioP />
      </div>
      );
    }

  }


class AudioP extends React.Component {

   state = {
      playlist:   [
          { url: 'https://www.bensound.com/bensound-music/bensound-ukulele.mp3',
            title: 'Ukelele Sound' },
          { url: 'https://www.bensound.com/bensound-music/bensound-anewbeginning.mp3',
            title: 'A New Beginning' }]
          }

    restartVideo() {
      // restart the video here?
    }

   render() {
    return (
    <div>
        <AudioPlayer ref = "audioPlayer" style = {{marginTop: 10}} 
            playlist = {this.state.playlist} 
            onMediaEvent = {{
              'play': this.restartVideo  
              // how to restart the video here?            
            }}
        />     
    </div>

      )
   }

}  


class VideoPlayer extends React.Component {

    render() {
      return (
      <div>
         <Player ref = "player">
              <source src = "https://media.w3.org/2010/05/sintel/trailer_hd.mp4" />
              <ControlBar>
                <ReplayControl seconds = {10} order = {1.1} />
                <ForwardControl seconds = {30} order = {1.2} />
              </ControlBar>
            </Player>

    </div>      
    )}
}

export default App;

Попробуйте использовать ссылку на видеоплеер и используйте javascript, чтобы запустить воспроизведение с помощью onClick. Не знаю, как работает пакет react-video, но попробовать стоит. ref = {video => this.video=video} и onClick = {() => this.video.play()} на видео и аудио соответственно.

benjaminadk 30.03.2018 14:50

Ах, хорошо - да, это говорит о причинах воспроизведения мультимедиа на странице обзора ссылок в документации. Я пытался держаться подальше. Отчитаюсь!

jrjames83 30.03.2018 15:22
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
2
881
0

Другие вопросы по теме