Comment dessiner une image sur un contrôle VideoComponent en utilisant le framework LWUIT?

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

  •  28-10-2019
  •  | 
  •  

Question

J'ai essayé de trouver des variantes pour dessiner une image sur un VideoComponent et apparemment ce n'est pas possible !.Ce que je fais est d'afficher une image lors d'une pause de lecture vidéo et d'ajouter un bouton de retour à un formulaire.

Le problème est que l'image n'est jamais peinte sur le contrôle VideoComponent

Une partie du code ci-dessous:

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

}    
Était-ce utile?

La solution

Il s'agit d'un problème MMAPI sans rapport avec LWUIT.Par défaut, la vidéo sera toujours au top.

Le JSR 234 de MMAPI offre un support pour quelque chose comme ça, mais il nécessite de se plonger profondément dans l'implémentation multimédia spécifique pour MIDP et spécifique pour les appareils téléphoniques.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top