Я пытаюсь загрузить файл мультимедиа, но все, что я получаю от него пустой белый экран, но я могу услышать, как играет файл. Файл находится в папке, называемой ресурсами в моем проекте.JavaFX MediaPlayer ничего не показывает?
Вот код.
public class ScreenSaverController implements IControlledScreen {
Main app;
public void setApp(Main application) {
app = application;
}
@Override
public void onDestroy() {
}
@FXML
private MediaView mediaView;
@FXML
protected void initialize() {
URL url = getClass().getResource("/resources/screenSaver.mp4");
MediaPlayer mediaPlayer = new MediaPlayer(new Media(url.toString()));
mediaView.setMediaPlayer(mediaPlayer);
mediaPlayer.play();
}
}
Мой файл FXML, содержит только этот
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.media.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<BorderPane prefHeight="1024.0" prefWidth="1280.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<center>
<MediaView fx:id="mediaView" fitHeight="1024.0" fitWidth="1280.0" BorderPane.alignment="CENTER" />
</center>
</BorderPane>
Как я сказал, что я могу услышать файл, но ничего не показывает. Я попытался с версиями mp4 и flv одного и того же файла, и оба делают то же самое, звук, но не видео.
Если я изменить код для этого, я могу видеть видео
MediaPlayer mediaPlayer = new MediaPlayer(new Media("http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv"));
Я модернизировал свой JDK до версии 1.8.0_31 и все тот же.
Кто-нибудь знает, что я делаю неправильно? Я должен что-то делать при использовании локального файла?
[JavaFX media javadoc] (http://docs.oracle.com/javase/8/javafx/api/javafx/scene/media/package-summary.html) подробные поддерживаемые кодеки для JavaFX - убедитесь, что ваше видео кодируется с использованием поддерживаемого кодека. Также добавьте обработку ошибок, упомянутую на странице javadoc, чтобы устранить любые ошибки воспроизведения мультимедиа. Убедитесь, что ваша система соответствует [минимальной сертифицированной конфигурации для воспроизведения медиафайлов JavaFX] (http://www.oracle.com/technetwork/java/javase/certconfig-2095354.html). – jewelsea
Теперь я кодировал видео с помощью VLC, и теперь видео открывается, но не воспроизводится. Я использовал код примера из ссылки, которую вы отправили, и теперь я получаю сообщение об ошибке асинхронной ошибки Handle в MediaView: [[email protected]950da] ERROR_MEDIA_INVALID: ERROR_MEDIA_INVALID – Gillardo
Казалось бы, ваш медиафайл неправильно закодирован в формат, который может понять JavaFX. – jewelsea