import java.io.IOException;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
import javax.microedition.media.control.VideoControl;
public class CaptureCanvas extends Canvas {
Player mp;
VideoControl vc;
Image image;
public CaptureCanvas() {
try {
capture();
} catch (IOException e) {
e.printStackTrace();
} catch (MediaException e) {
e.printStackTrace();
}
}
protected void paint(Graphics arg0) {
if (image != null)
arg0.drawImage(image, 0, 0, 20);
}
public void keyPressed(int keyCode) {
new Thread() {
public void run() {
try {
image = getImage();
repaint();
} catch (MediaException e) {
e.printStackTrace();
}
}
}.start();
}
public void capture() throws IOException, MediaException {
mp = Manager.createPlayer("capture://video");
mp.realize();
vc = (VideoControl) mp.getControl("VideoControl");
if (vc != null) {
vc.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this);
vc.setDisplayFullScreen(true);
}
vc.setVisible(true);
mp.start();
}
private Image getImage() throws MediaException {
byte[] data = vc.getSnapshot(null);
Image image = Image.createImage(data, 0, data.length);
return image;
}
}