Как перезапустить видео на Exoplayer после ExoPlayer.STATE_ENDED

Я использую Exoplayer с базой DemoPlayer . Я хочу перезапустить / воспроизвести видео, начиная с некоторого действия пользователя после отправки ExoPlayer.STATE_ENDED .

Я попытался использовать seekTo(0) и mPlayer.setPlayWhenReady(true); После того, как он ничего не сделал, вообще.

Solutions Collecting From Web of "Как перезапустить видео на Exoplayer после ExoPlayer.STATE_ENDED"

Я обновил библиотеку до ExoPlayer r1.4.2 и он выполняет эту работу …

  mPlayer.seekTo(0); mPlayer.setPlayWhenReady(true); // replay from start 

// Пауза после перезапуска

  mPlayer.seekTo(0); mPlayer.setPlayWhenReady(false); 

Видео можно легко комбинировать с помощью LoopingMediaSource. В следующем примере цикл выполняется бесконечно. Также можно указать счетчик конечных циклов при создании LoopingMediaSource.

 MediaSource source = new ExtractorMediaSource(videoUri, ...); // Loops the video indefinitely. LoopingMediaSource loopingSource = new LoopingMediaSource(source); 

Или добавить слушателя

 playerExo.addListener(new ExoPlayer.Listener() { @Override public void onPlayerStateChanged(boolean playWhenReady, int playbackState) { switch(playbackState) { case ExoPlayer.STATE_BUFFERING: break; case ExoPlayer.STATE_ENDED: playerExo.seekTo(0); break; case ExoPlayer.STATE_IDLE: break; case ExoPlayer.STATE_PREPARING: break; case ExoPlayer.STATE_READY: break; default: break; } } @Override public void onPlayWhenReadyCommitted() { } @Override public void onPlayerError(ExoPlaybackException error) { } }); playerExo.seekTo(0); playerExo.setPlayWhenReady(true);