JavaFX MediaView 渲染白色视频

JavaFX MediaView rendering a white video

TL;DR:解决方案:将 JavaFX 版本增加到 15.0.1。

我正在重写我昨天问的问题,因为它的表述和解释都很糟糕。

我的工作:我使用 JavaFX 创建 Media 和 MediaView 在场景中渲染 .mp4 视频。

发生了什么:屏幕保持空白。

应该发生什么:视频应该正确呈现并被用户看到。

我试过的 :

我的代码 :

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(2560);
        window.setHeight(1440);
        window.setX(0);
        window.setY(0);
        window.setResizable(false);
        window.setFullScreen(true);
        window.setFullScreenExitHint("");

        Pane pane = new Pane();

        // Example to show that adding a simple figure to the pane works fine.
        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 : "src\main\resources\img\Animated Titlescreen Background.mp4".
        // This is obtained using other classes and methods that read the computer directories,
        // so it works fine across different computers.
        MediaPlayer mediaPlayer = new MediaPlayer(media);
        mediaPlayer.setAutoPlay(true);
        MediaView mediaView = new MediaView(mediaPlayer);

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

        Scene scene = new Scene(pane, 2560, 1440);

        window.setScene(scene);

        window.show();
    }

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

this link 上阅读更多内容后,它说 Windows 8 将 H.264 解码器分辨率提高到 4096x2304,这在 JavaFX 15.0 版上可用。 1.我使用的是 12.0.1 版,因为 Linux 上的 15.0.1.

版存在严重问题

解决方案:将 JavaFX 版本增加到 15.0.1。