Я использую React Native Video для моего приложения. Мой компонент выглядит так:
<Video
source={{ uri: this.state.videoURL }}
paused={this.state.isVideoPaused}
onEnd={() => this.playNext()}
/>
, а затем мой метод playNext()
выглядит следующим образом:
playNext = () => {
let playQueue = this.state.videoQueue;
let nextElement = playQueue.pop();
this.setState({
videoURL: nextElement,
videoQueue: playQueue
});
}
Все работает, как и ожидалось, за исключением того факта, что всякий раз, когда onEnd
событие происходит, срабатывает дважды. И вместо воспроизведения следующего видео из очереди проигрыватель воспроизводит второе видео после того, которое должно быть включено.
Каким-то образом при первом рендеринге следующего видео onEnd
снова запускается. Я предполагаю, что это как-то связано с текущей продолжительностью видео, которое не было сброшено.
Я изо всех сил пытаюсь найти правильное решение этой проблемы. Любая помощь будет очень ценится.