¿Cómo dibujar una imagen a través de un control de videocomponente usando el marco de lwuit?

StackOverflow https://stackoverflow.com/questions/9383456

  •  28-10-2019
  •  | 
  •  

Pregunta

¡Traté de encontrar variantes para dibujar una imagen sobre un videocomponente y aparentemente no es posible!. Lo que hago es mostrar una imagen en la reproducción de video de pausa y agregar un botón de retroceso a un formulario.

El problema es que la imagen nunca se pinta sobre el control de videocomponente

Parte del código a continuación:

//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();
        }            
    }    

}    
¿Fue útil?

Solución

Este es un problema de MMAPI no relacionado con LWuit. Por defecto, el video siempre estará en la cima.

JSR 234 de MMAPI ofrece soporte para algo así, pero requiere profundizar en la implementación de los medios específica para MIDP y específico para dispositivos telefónicos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top