JavaFX MediaView отображает белое видео

Я использую JavaFX и пытаюсь показать видео на своей сцене для титульного экрана моей игры, но при воспроизведении видео отображается только белый экран. Проблема довольно проста.

Вот код:

              Media media = new Media(new File(FileGetter.directory("img").concat("Animated Titlescreen Background.mp4")).toURI().toString()));
        MediaPlayer mediaPlayer = new MediaPlayer(media);
        mediaPlayer.setAutoPlay(true);
        MediaView mediaView = new MediaView(mediaPlayer);

        TitleScreen.pane.getChildren().add(mediaView);

FileGetter перенаправляет только в соответствующий каталог, и носитель должен работать правильно, так как я использую тот же метод для звука, и он отлично работает.

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

Заранее спасибо за помощь !

Изменить: вот минимальный воспроизводимый пример:

      import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;

import java.io.File;

public class Application extends javafx.application.Application {
    Stage window;

    @Override
    public void start(Stage primaryStage) {
        window = primaryStage;

        window.setWidth(1920);
        window.setHeight(1080);
        window.setX(0);
        window.setY(0);
        window.setResizable(false);
        window.setFullScreen(true);
        window.setFullScreenExitHint("");

        Pane pane = new Pane();

        javafx.scene.shape.Rectangle r = new javafx.scene.shape.Rectangle(0, 0, 150, 150);

        Media media = new Media(new File(/*Insert file name you own for testing purposes*/).toURI().toString());
        // The path I would use : "C:\\Java\\Projects\\Star Defender\\src\\main\\resources\\img\\Animated Titlescreen Background.mp4"
        MediaPlayer mediaPlayer = new MediaPlayer(media);
        mediaPlayer.setAutoPlay(true);
        MediaView mediaView = new MediaView(mediaPlayer);

        pane.getChildren().addAll(mediaView, r);

        Scene scene = new Scene(pane, 1920, 1080);

        window.setScene(scene);

        window.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

0 ответов

Другие вопросы по тегам