我最近发现javafx 2.1对我制作视频播放器的项目非常有用,但是之后 成功我遇到了视频尺寸Dimensions的问题。换句话说,当我跑的时候 程序和视频正常播放我无法看到整个视频,因为它的尺寸 比我的屏幕分辨率大。我可以在下面的代码中做什么来调整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();
}
}
答案 0 :(得分: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);
}
然后视频应该适合舞台。上面的代码非常粗糙,你可能想要更好地“缩放”视频,即:找到媒体宽度VS的舞台宽度和宽度的比率。媒体高度VS舞台高度......但上面的代码应该可以帮助你开始。