1
我試圖找到變種在一個VideoComponent上繪製一個圖像,顯然不可能!我所做的是在暫停視頻播放時顯示圖像,並向表單添加後退按鈕。如何使用LWUIT框架通過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();
}
}
}
謝謝Shai Almog! – jordenysp 2012-03-01 15:12:34