2014-11-13 4 views
1

Я играю видеофайл (полный экран), и я хочу, чтобы звуковой файл воспроизводился после того, как видео закончило игру.vlcj MediaPlayer: как определить, когда закончилось воспроизведение видео

Дело в том:

  • Я могу воспроизвести видеофайл в полноэкранном режиме;
  • Я в состоянии обнаружить, когда видео файл закончил играть:

    while(!mpu.getMediaPlayer().getMediaPlayerState().toString().equalsIgnoreCase("libvlc_Ended")) 
    { 
        System.out.println("It's being played"); 
        estado = mpu.getMediaPlayer().getMediaPlayerState();   
    } 
    
  • Но эти линии делают мое видео оставить это полный экран ....

Мне нужна видеофайла, чтобы сохранить его на полном экране.

+0

Разве это не игрок, а не ваш код, который заканчивается в полноэкранном режиме? –

+0

Нет, если я прокомментирую эти строки, то программа держится на полноэкранном режиме – Marie

+0

Эта плотная петля - очень плохая идея. Вы должны использовать события. – caprica

ответ

2

Если вы хотите (по заголовку вопроса) определить, когда видео закончило воспроизведение, вы должны использовать прослушиватель событий - вы не должны использовать замкнутую петлю, которая запрашивает состояние медиаплеера, поэтому используйте:

mpu.getMediaPlayer().addMediaPlayerEventListener(new MediaPlayerEventAdapter() { 
    @Override 
    public void finished(MediaPlayer mediaPlayer) { 
     // Code to execute here when media player finished playing... 
    } 
}); 

Если вы хотите воспроизвести другой мультимедийный файл (в вашем случае аудиофайл) после завершения первого видео, вам может потребоваться использовать EmbeddedMediaListPlayerComponent, который позаботится о том, чтобы воспроизвести для вас список воспроизведения.

Использование EmbeddedMediaListPlayerComponent - это совсем другой подход, который может сработать для вас, но нет ничего плохого в использовании прослушивателя событий для управления собственным плей-листом.

Остальная часть вашего вопроса спрашивает о полноэкранном поведении.

В коде, который вы опубликовали, ничего не происходит, что приведет к тому, что медиаплеер выйдет из полноэкранного режима, поэтому что-то еще, что вы не отправили, в вашем коде идет не так.

Возможно, вам нужно разместить больше кода, чтобы показать, как именно вы реализуете полноэкранный режим - в частности, вы пока не указали, как вы вставляете медиаплеер в приложение и как точно вы входите в полноэкранный режим ,

Существует также много примеров в источниках тестирования vlcj, которые демонстрируют списки воспроизведения, события и полноэкранный режим на всех платформах, которые вы должны просмотреть.

Смежные вопросы