3

最近、javafx 2.1がビデオプレーヤーを作成するプロジェクトに非常に役立つことがわかりましたが、成功した後、ビデオサイズの寸法に問題が発生しました。つまり、プログラムを実行してビデオが正常に再生されている場合、ビデオのサイズが画面の解像度よりも大きいため、ビデオ全体を見ることができません。次のコードで、Windows764ビットのビデオの実際のサイズのサイズを変更するにはどうすればよいですか。 :

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

    }
}
4

1 に答える 1

9

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


             }

次に、ビデオがステージ内に収まるはずです。上記のコードはかなり粗雑であり、ビデオをより適切に「スケーリング」することをお勧めします。つまり、メディア幅VSステージ幅とメディア高さVSステージ高さの比率を見つけます...しかし、上記のコードで開始できます。

于 2012-07-04T19:24:40.037 に答える