我正在表单上显示视频,但视频总是拉伸到正方形。我无法掌握任何视频组件以获得真正的大小。这是显示视频的代码:
imageVideoContainer = new Container(new BorderLayout(BorderLayout.CENTER_BEHAVIOR_SCALE)) {
protected Dimension calcPreferredSize() {
return new Dimension(Display.getInstance().getDisplayWidth(), Display.getInstance().getDisplayWidth());
}
};
media = MediaManager.createMedia(FileSystemStorage.getInstance().getAppHomePath() + movePath, true);
mp = new MediaPlayer(media);
mp.setAutoplay(true);
imageVideoContainer.add(BorderLayout.CENTER, mp);
container = new Container(new BoxLayout(BoxLayout.Y_AXIS));
container.add(BorderLayout.centerAbsolute(imageVideoContainer));
如果我不覆盖calcPreferredSize,它根本不会显示。任何帮助赞赏。我已经尝试过调试来调查Media Player以获得大小但却找不到的东西。
答案 0 :(得分:0)
问题是,在加载视频之前,大小不存在。因此,当您将其添加到表单时,它的首选大小将为0.
然后将其添加到居中绝对值,这需要首选大小来定位/调整视频大小。解决方案可以是启动视频,然后调用revalidate()
重做布局并正确定位视频。