Я создаю повествовательное приложение, в котором мне нужно воспроизводить видео.
При воспроизведении носителя с MediaPlayer.playMedia(Media media)
.
Чтобы избежать черного фона, я жду ожидания события воспроизведения, прежде чем показывать медиаплеер.
player.addMediaPlayerEventListener(new MediaPlayerEventAdapter() {
@Override
public void playing(MediaPlayer mediaPlayer) {
showVideo();
}
}
Проблема в том, что это событие запускается до того, как видео фактически начинает воспроизводиться, поэтому некоторое время до этого оно все еще отображается черным.
Как я могу это обойти? Спасибо
Я не знаю наверняка, но вы можете попробовать другие методы прослушивателя событий - возможно, videoOutput, elementaryStreamAdded или elementaryStreamSelected (и проверьте, что параметр типа потока был video), или, возможно, дождитесь самого первого события positionChanged (хотя это не идеально, он может работать достаточно хорошо для вашего варианта использования).
Просто продолжение, с vlcj-3.12.1 теперь вы можете ждать, пока событие mediaPlayerReady будет служить той же цели (по сути, это то же самое, что и ожидание этого первого события positionChanged).
Спасибо. У меня не было никаких результатов с другими событиями, но даже метод positionChanged работал для меня достаточно хорошо. Спасибо!