如何在JavaFX应用程序中使视频响应?

时间:2019-02-07 14:47:04

标签: java javafx scenebuilder

我使用Scene Builder开发了JavaFX应用程序。我在节目开始时有一个视频。应用程序是全屏的,视频也是全屏的。我以1920x1080的分辨率制作了应用程序的所有元素。此分辨率的视频看起来不错,但是更改屏幕分辨率时出现问题。

视频分辨率为1920x1080

视频不适合屏幕分辨率。

如何使视频响应屏幕分辨率?

我的应用程序包含“锚定窗格”,视频被放置在该“锚定窗格”中。所有约束都设置为0

这是视频在1920x1080分辨率下的外观:

1920x1080

这是我的视频在1024x768中的显示方式

1920x1080

场景构建器:

Scene Builder

@FXML  private AnchorPane mainAnchor
@FXML  private MediaView media;

@FXML
public void initialize(URL location, ResourceBundle resources) {

//make video responsive to screen resolution
media.setFitWidth(mainAnchor.getWidth());
media.setFitHeight(mainAnchor.getHeight());



mp = new MediaPlayer(new Media(this.getClass().getResource(MEDIA_URL).toExternalForm()));
media.setMediaPlayer(mp);
mp.setAutoPlay(true);

Timeline tm = new Timeline(new KeyFrame(Duration.millis(3000), new KeyValue(media.opacityProperty(),  0.0)));
Timeline tm2 = new Timeline(new KeyFrame(Duration.millis(2000), new KeyValue(grid.opacityProperty(),  1.0)));
Timeline tmScaleX = new Timeline(new KeyFrame(Duration.millis(200), new KeyValue(media.scaleXProperty(),  0.0)));
Timeline tmScaleY = new Timeline(new KeyFrame(Duration.millis(200), new KeyValue(media.scaleYProperty(),  0.0)));

tm.setDelay(Duration.millis(5500));
tm2.setDelay(Duration.millis(2000));
tmScaleX.setDelay(Duration.millis(9000));
tmScaleY.setDelay(Duration.millis(9000));


tm.play();
tm2.play();
tmScaleX.play();
tmScaleY.play();

 }

0 个答案:

没有答案