JavaFxvideo尺寸输出屏幕

我最近发现javafx 2.1对于我制作video播放器的项目非常有用,但是在成功之后我遇到了video尺寸的问题。 换句话说,当我运行程序和video播放正常时,我无法看到整个video,因为它的尺寸大于我的屏幕分辨率。我可以在下面的代码中调整Windows7 64bit :

public class HelloFx extends Application { public static void main(String[] args){ launch(args); } @Override public void start(final Stage stage) throws Exception { stage.setTitle("Movie Player"); final BorderPane root = new BorderPane(); final Media media = new Media("file:///Users//user//Videos//Sintel.mp4"); final MediaPlayer player = new MediaPlayer(media); final MediaView view = new MediaView(player); // System.out.println("media.width: "+media.getWidth()); root.getChildren().add(view); final Scene scene = new Scene(root, 400, 400, Color.BLACK); stage.setScene(scene); stage.show(); player.play(); player.setOnReady(new Runnable() { @Override public void run() { int w = player.getMedia().getWidth(); int h = player.getMedia().getHeight(); stage.setMinWidth(w); stage.setMinHeight(h); } }); //player.play(); } } 

JavaFX 2 MediaView类有两个可以帮助的功能。 它们是.setFitHeight()和.setFitWidth()。

所以,你可以,而不是让媒体决定屏幕的大小,让你的舞台设置屏幕的大小…

  public void run() { int w = stage.getWidth(); // player.getMedia().getWidth(); int h = stage.getHeight(); // player.getMedia().getHeight(); // stage.setMinWidth(w); // stage.setMinHeight(h); // make the video conform to the size of the stage now... player.setFitWidth(w); player.setFitHeight(h); } 

那么视频应该适合舞台的内部。 上面的代码是非常粗糙的,你可能想要更好地“缩放”视频,即:找到媒体宽度VS舞台宽度和媒体高度VS舞台高度的比例…但是上面的代码应该让你开始。