You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaFX MediaView渲染2560x1440分辨率MP4视频显示空白的解决方法

TL;DR:将JavaFX版本升级至15.0.1即可解决该问题。

问题背景

以下为整理后的完整问题描述,此前的问题表述不够清晰完整。

  • 操作场景:使用JavaFX创建Media和MediaView组件,在场景中渲染.mp4格式的视频文件。
  • 问题现象:播放2560x1440分辨率视频时屏幕始终显示空白。
  • 预期效果:视频能够正常渲染,用户可正常查看播放内容。

已尝试的排查手段

  • 修改文件编码格式:从H.264改为QuickTime编码,输出为.mov格式
    • 结果:JavaFX无法识别QuickTime编码格式
  • 调整视频帧率:在30FPS和60FPS之间切换测试
    • 结果:无任何改善
  • 缩短视频时长减小文件体积测试
    • 结果:无任何改善
  • 修改视频宽高比:从16:9调整为16:10
    • 结果:无任何改善
  • 降低视频分辨率:从2560x1440调整为1920x1080
    • 结果:视频可以正常播放,但需要2560x1440分辨率的视频铺满全屏,不同分辨率适配问题后续将自行处理
  • 测试本地存储的多个不同视频文件
    • 结果:分辨率小于等于1920x1080的视频均可正常播放,另一部2560x1440分辨率的视频同样无法播放
  • 测试网络URL引用的2560x1440分辨率视频
    • 结果:和上述本地视频表现一致,无法正常播放

实现代码

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();

        // 示例:向面板添加简单图形可正常显示
        javafx.scene.shape.Rectangle r = new javafx.scene.shape.Rectangle(0, 0, 150, 150);

        Media media = new Media(new File(/*此处插入你本地的测试文件路径*/).toURI().toString());
        // 原使用路径示例 : "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, 2560, 1440);

        window.setScene(scene);

        window.show();
    }

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

内容的提问来源于stack exchange,提问作者Nephty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 23:57:02