我需要在Raspberry Pi上运行JavaFX应用程序。应用程序包含MediaPlayer对象。
由于Oracle的Java for ARM不包含javafx软件包,因此我已经为ARM安装了Gluon JavaFX端口。不幸的是,我通过应用程序播放的所有示例视频都交换了颜色(似乎交换了红色和蓝色通道)。我测试了来自不同来源的视频。在PC上,Oracle的JRE应用程序可播放色彩正确的视频。 Sample video
由于Gluon的JavaFX端口使用gstreamer0.10-ffmpeg
,因此我还在Raspberry上测试了GStreamer:gst-launch-0.10 playbin uri=file:///sample.mp4
,但是视频颜色是正确的,因此似乎是Gluon JavaFX端口错误。任何人都可以帮助修复或找到解决方法?
用于测试的示例类:
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
Media pick = new Media(Paths.get("sample.mp4").toUri().toString());
MediaPlayer player = new MediaPlayer(pick);
MediaView mediaView = new MediaView(player);
StackPane root = new StackPane();
root.getChildren().add(mediaView);
Scene scene = new Scene(root,300,250);
primaryStage.setScene(scene);
primaryStage.show();
player.play();
}
}
编辑:我尝试了其他多个选项来在Java应用程序上显示视频。对于需要在Raspberry上显示视频的其他人,请查看VLCJ库。 VLC显示正确的颜色,甚至比JavaFX MediaPlayer更加平滑。