Я создал базовый JavaFX Media Player. На моей операционной системе Windows 10 все работает нормально и работает точно так, как должно.
private MediaPlayer initializeMediaPlayer(){
Media media = new Media(getClass().getResource("1-1.mp4").toString());
MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.setAutoPlay(true);
mediaPlayer.setCycleCount(MediaPlayer.INDEFINITE);
mediaPlayer.setRate(1.25);
mediaPlayer.setMute(true);
return mediaPlayer;
}
Тем не менее, когда я запускаю этот код в Windows 7, видео не зацикливается: оно воспроизводится в течение пяти секунд, а в конце видео оно просто зависает. Учитывая, что видео длится всего 5 секунд, петля абсолютно необходима для правильной работы этой программы.
Вот что я знаю об этой проблеме:
- Проблема сохраняется ТОЛЬКО для файлов mp4 в Windows 7. Когда программа запускалась с примером .flv файла oracle (т.е. http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv), она работала нормально. Преобразование моих файлов mp4 в flv не вариант.
- Программа отлично работает на всех компьютерах с Windows 10, на которых я ее запускаю. Эта проблема возникает только в Windows 7, но я не проверял ее ни в каких других операционных системах. Мне нужно в конечном итоге запустить эту программу в лаборатории только с компьютерами Windows 7.
- Все остальные параметры MediaPlayer (например, set autoplay, setMute и setRate) работают нормально как в Windows 10, так и в Windows 7. Это просто атрибут setCycleCount, который, похоже, не работает в Windows 7.
- На всех тестовых компьютерах я убедился, что Java обновлена до самой последней версии. Я использую Java 8 обновление 144.