【问题标题】:JavaFX MediaPlayer exceptions in Debian LinuxDebian Linux 中的 JavaFX MediaPlayer 异常
【发布时间】:2015-08-21 16:55:50
【问题描述】:

我在让 JavaFX MediaPlayer 组件在 Debian Jessie 中播放内容(任何容器/编码类型的视频/音频文件)时遇到问题(与其他一些问题一样)。我已经尝试并用尽了这个问题的任何潜在解决方案(我已经安装了 GLIB 2.28,我已经将 Java 升级到 u60,我已经确保所有编解码器包都已经安装,包括 libavcodec/libavformat/libavutil/等,我在 gtk2 2.18+)。我不知道还能做什么或尝试。我有一个非常简单的应用程序,它在 Windows 7 下运行良好

这是一个简单的应用程序:

public class MediaTest extends Application {

    @Override
    public void start(Stage primaryStage) {
        BorderPane root = new BorderPane();

        Media media = new Media(new File("/path/to/file/test.flv").toURI().toString());
        MediaPlayer player = new MediaPlayer(media);
        MediaView view = new MediaView(player);

        root.setCenter(view);

        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("For the love of God, please work");
        primaryStage.setScene(scene);
        primaryStage.show();

        player.play();
    }

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

问题体现在 MediaPlayer 的创建上。经过几个冗长的调试会话后,我发现内部生成的异常是 MEDIA_UNSUPPORTED 消息的某种排列,无论媒体类型或格式如何,尽管捕获的异常将其列为

MediaException: UNKNOWN : com.sun.media.jfxmedia.MediaException: Could not create player!

我已经尝试了所有我能想到的。我有一个示例视频文件,几乎以所有可能的方式编码,并且在无数不同的容器中。没有任何效果。我有一个以几乎所有可能的方式编码的示例音频文件,结果相同。

我只是想让 MediaPlayer 在 Debian 上工作吗?如果是这样,这是非常令人失望的。我知道要在 Windows、Mac 和 Linux 的每个发行版上运行几乎是不可能的,但一次编写到处运行似乎不适用于 Java8。

编辑:我有 oracle 的 java8,而不是 openjdk。


编辑 2:内部错误似乎来自 gstreamer。 以下是进入MediaException.getMediaException(Object source, int errorCode, String message)的参数:

source    : com.sun.media.jfxmediaimpl.platform.gstreamer.GSTMedia
errorCode : 265
message   : ERROR_MEDIA_AUDIO_FORMAT_UNSUPPORTED

【问题讨论】:

  • 会不会是我的 libavcodec/libavformat 版本太新了?我有 libavcodec56 和 libavformat56,而JDK8 Certified System Configurations 页面列出了 libavcodec53 和 libavformat53
  • 我遇到了完全相同的问题。有没有人想通了?

标签: java linux javafx debian gstreamer


【解决方案1】:

注意图形驱动程序。例如,在 Ubuntu 16.04 中,AMD 开源图形驱动程序似乎不完整,javafx 视频似乎不可能。

我让它在这个环境中工作: Ubuntu 14.04,英特尔芯片组显卡,oracle jdk 8。 安装了 libavcodec54 和 libavformat54。不行(图形和声音都可以)。我的测试视频:http://www.sample-videos.com/video/flv/720/big_buck_bunny_720p_1mb.flv (容器:MP4/M4a,视频:H.264,声音:MPEG-4 AAC)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2018-09-08
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多