2016-07-07 51 views
1

我在窗體上顯示視頻,但視頻始終伸展到正方形。我無法控制任何視頻組件來獲取它的真實尺寸。這是顯示視頻的代碼:如何在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,它根本不顯示。任何幫助讚賞。我試過調試,以查看媒體播放器,以獲得有一個大小,但無法找到任何東西。

回答

0

的問題是,直到視頻加載的尺寸是不存在的。所以,當你把它添加到形式,它的首選大小爲0。

你然後將其添加到中心絕對需要首選大小位置/大小的視頻。解決方案可以是啓動視頻,然後致電revalidate()重新進行佈局並正確定位視頻。

+0

這將適用於風景視頻,但不幸的是不肖像。 – Karry

+0

不需要。在您旋轉強制重新安排層次結構的設備後,此功能會有效。所以你會開始在景觀中使用肖像,然後當你旋轉時它會再次工作。視頻播放開始後,嘗試在組件上調用setShouldCalcSize(true),然後重新驗證()。 –