2012-02-21 3 views
1

Я попытался найти варианты, чтобы нарисовать одно изображение над одним VideoComponent и, по-видимому, не возможно !. Я делаю это, чтобы отобразить изображение при воспроизведении паузы и добавить кнопку «Назад» в форму.Как нарисовать изображение над элементом управления VideoComponent с использованием рамки LWUIT?

Проблема заключается в том, что изображение никогда не закрашивается контроля VideoComponent

Часть кода ниже:

//Attributes 
VideoComponent vc; 
Player player; 
Image imgPause; 

//Constructor for video player class 
public VideoPlayer(String filename) 
{ 
    pauseImg = Image.createImage("/pause.png"); 
    if(pauseImg == null) 
     Log.p("ERROR, VideoPlayer pauseImg is null!!"); 
    vc = VideoComponent.createVideoPeer(fileName); 
    player = (Player) vc.getNativePeer(); 

    if(vc != null){           
     vc.setFullScreen(true); 
     vc.playInNativePlayer();      
     start();       
     setLayout(new BorderLayout()); 
     Container container = new Container(new FlowLayout()); 
     Button backButton = new Button("back");   
     backButton.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent ae) {       
       closeForm();      
      } 
     });   
     container.addComponent(backButton); 
     addComponent(BorderLayout.CENTER, vc); 
     addComponent(BorderLayout.EAST, container); 
} 

final public void start() { 
    try { 
     if(vc != null) { 
      player.realize(); 
      player.prefetch();  
      vc.start();     
     } 
    } catch(Exception ex) { 
     Log.p(ex.getMessage()); 
    }   
} 

public void paint(Graphics g) { 
    super.paint(g);  
    if(!isPlaying()) 
    { 
     int imgWidth = pauseImg.getWidth(); 
     int imgHeight = pauseImg.getHeight(); 
     Log.p("pauseImg.width() = " + imgWidth); 

     g.drawImage(pauseImg, getWidth()/2 - imgWidth/2 , getHeight()/2 - imgHeight/2); 
    }   
} 

public void pointerReleased(int x, int y) { 
    super.pointerReleased(x, y);   
    Log.p("VideoPlayer.pointerReleased "); 
    if(vc != null) { 
     if(isPlaying()){ 
      vc.stop(); 
      repaint(); 
     }     
     else { 
      vc.start(); 
      repaint(); 
     }    
    }  

}  

ответ

2

Это вопрос MMAPI не связан с LWUIT. По умолчанию видео всегда будет сверху.

MMPRI JSR 234 предлагает поддержку для чего-то подобного, но требует глубокого углубления в медиа-реализацию, специфичную для MIDP и предназначенную для телефонных устройств.

+0

Спасибо Shai Almog! – jordenysp