Как перезапустить видео на Exoplayer после ExoPlayer.СОСТОЯНИЕ ЗАВЕРШЕНО
Я использую Exoplayer С базы DemoPlayer. Я хочу перезагрузка/воспроизведение видео с начала на какое-то пользовательское действие после это ExoPlayer.STATE_ENDED отправляется.
Я пытался использовать seekTo(0)
и mPlayer.setPlayWhenReady(true);
после, но он ничего не делал, вообще.
2 ответов
я обновил библиотеку до 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(audioUri, ...);
// Loops the audio 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);//replay from start
/* If you want to Pause audio/video and restart
mPlayer.seekTo(0);
mPlayer.setPlayWhenReady(false);*/
вы можете проверить последнюю версию Exoplayer, чтобы быть в курсе: