JavaFx Video Dimension OUT屏幕

PeG*_*nOS 3 java windows javafx-2

我最近发现javafx 2.1对于我制作视频播放器的项目非常有用但是在成功之后我遇到了视频大小尺寸问题.换句话说,当我运行该程序,视频播放正常,我不能看到整个视频,因为它的尺寸比我的屏幕分辨率.什么大我可以在下面的代码做调整大小的视频在Windows7 64位的实际大小:

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

    }
}
Run Code Online (Sandbox Code Playgroud)

小智 7

JavaFX 2 MediaView类有2个功能可以提供帮助.它们是.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);


             }
Run Code Online (Sandbox Code Playgroud)

然后视频应该适合舞台.上面的代码很粗糙,你可能想要更好地"缩放"视频,即:找到媒体宽度VS的舞台宽度和媒体高度VS舞台高度的比率......但是上面的代码应该让你开始.