Я использую 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()}на видео и аудио соответственно.