В моем файле FXML у меня есть:Невозможно воспроизвести видео с помощью JavaFX MediaPlayer
<AnchorPane prefHeight="500.0" prefWidth="500.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.40">
<children>
<Button layoutX="14.0" layoutY="461.0" mnemonicParsing="false" text="Dummy Button" />
<MediaView id="videoView" fitHeight="400.0" fitWidth="450.0" layoutX="14.0" layoutY="14.0" />
</children>
</AnchorPane>
И вот мой код:
File f = new File("video.mp4");
Media media = new Media(f.toURI().toString());
MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.setAutoPlay(true);
MediaView mediaView = (MediaView) videoLayout.lookup("#videoView");
mediaView.setMediaPlayer(mediaPlayer);
фиктивная кнопка появляется так раскладка загружена правильно. Исключений и ошибок нет, но ничего не происходит. Я не вижу видеокадров, ничего не воспроизводится. Я запускаю этот код в Windows 7. Что я делаю неправильно?
EDIT:
код нормально. Только не все мои тестовые материалы были поддержаны. Как было предложено ниже, это хорошо, чтобы проверить игрока состояние:
mediaPlayer.setOnError(()->System.out.println("media error"
+ mediaPlayer.getError().toString()));
Я встретил 3 проблемы до сих пор:
- Ошибка была напечатана «ERROR_MEDIA_CORRUPTED: ERROR_MEDIA_CORRUPTED»
- ошибка не была напечатана, но только аудио
- Исключение было выбрано «MediaException: MEDIA_UNSUPPORTED: непризнанная подпись файла!»
Ошибка не печатается. И когда я это делаю: mediaPlayer.setOnReady (() -> System.out.println («media ready»)); Я вижу, что СМИ готовы. Внедрение в FXML также не сработало. – user1723095
Я экспериментировал с некоторыми другими видеороликами, и я обнаружил, что один контент воспроизводит только звук (и никакой ошибки не возвращается из MediaPlayer). Другое не работает вообще (и не поддерживается носитель без печати). Третий также не работает, хотя исключение исключено, поэтому никакая ошибка не печатается. И, наконец, четвертый играет хорошо, поэтому я думаю, что мой код в порядке. В любом случае спасибо за ответ, это помогло мне найти проблему. – user1723095