Я пытался найти варианты для рисования одного изображения над одним VideoComponent и, по-видимому, не возможно !.Что я делаю, так это отображаю изображение при приостановке воспроизведения видео и добавляю кнопку «Назад» в форму.
Проблема в том, что изображение никогда не закрашивается поверх элемента управления 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();
}
}
}