如何在codenameOne中显示正确尺寸的视频?

时间:2016-07-07 08:49:50

标签: codenameone

我正在表单上显示视频,但视频总是拉伸到正方形。我无法掌握任何视频组件以获得真正的大小。这是显示视频的代码:

   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以获得大小但却找不到的东西。

1 个答案:

答案 0 :(得分:0)

问题是,在加载视频之前,大小不存在。因此,当您将其添加到表单时,它的首选大小将为0.

然后将其添加到居中绝对值,这需要首选大小来定位/调整视频大小。解决方案可以是启动视频,然后调用revalidate()重做布局并正确定位视频。