我遇到了JavaFX MediaPlayer的问题。出于测试目的,我从http://docs.oracle.com/javafx/2/media/playercontrol.htm下载了示例并添加了一些错误处理。使用以下错误处理时
mediaPlayer.setOnError(new Runnable() {
@Override
public void run() {
System.out.println(mediaPlayer.getError().getMessage());
System.out.println(mediaPlayer.getError().getType());
}
});
我得到了这个控制台输出:
[com.sun.media.jfxmediaimpl.platform.gstreamer.GSTMediaPlayer@5482fb8f] "Error: Media invalid": "Error: Media invalid"
UNKNOWN
视频采用h264和aac(音频)编码,分辨率为1920x1168像素。每个视频的分辨率大于1920x1080px时会出错。具有1920x1080px或更小分辨率的视频工作正常。所有视频的播放都与VLC-Player一起使用。我使用的是Java 7_51。
是否有人知道如何运行视频,或者可能是,不支持分辨率高于1920x1080px的视频?
答案 0 :(得分:1)
This tutorial表示" AAC和H.264 / AVC解码具有某些与平台相关的限制,如http://www.oracle.com/technetwork/java/javase/downloads/中提供的发行说明中所述。"当然,每个版本都有自己的发行说明,因此教程中的链接毫无用处。经过一些搜索后,可以找到this table for Oracle JDK 8 and JRE 8 at the end under the heading "JavaFX Media"(抱歉,该页面上没有锚点),提供有关所用实现的平台特定说明。我没有找到或寻找JDK 7的等价物,因为毕竟这是一个相当古老的问题......
答案 1 :(得分:0)
这可能是由视频大小引起的。 Iirc JavaFx mediaPlayers最多只能播放1920x1080的视频。明显大于此值的任何值都会引发Media_Invalid错误。