Как перезапустить видео на 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, чтобы быть в курсе:

Exoplayer-Релизы