package hello; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; import video.MIDPPixelSource; import video.VideoListener; public class HelloVideo extends MIDlet { public VideoCanvas myCanvas; public MIDPPixelSource ps; public void startApp() throws MIDletStateChangeException { myCanvas = new VideoCanvas(); Display display = Display.getDisplay(this); display.setCurrent(myCanvas); //ps = new MIDPPixelSource(160, 120,"http://itp.nyu.edu/~dbo3/cellphone/testvid/h.MPG",myCanvas); //ps = new MIDPPixelSource(160, 120,"http://java.sun.com/products/java-media/mma/media/test-mpeg.mpg",myCanvas); //ps = new MIDPPixelSource(160, 120,true); ps = new MIDPPixelSource(160, 120); ps.addVideoListener(myCanvas, 15); } public void pauseApp() { } public void destroyApp(boolean arg0) throws MIDletStateChangeException { System.out.println("destroy"); } public class VideoCanvas extends Canvas implements VideoListener { int x; int y; Image myImage; public void keyPressed(int keyCode) { System.out.println(keyCode); System.out.println("Keycode" + keyCode); ps.grabFrame(); if (keyCode == Canvas.KEY_NUM4) { x--; } else if (keyCode == Canvas.KEY_NUM6) { x++; } else if (keyCode == Canvas.KEY_NUM5) { ps.grabFrame(); myImage = ps.getImage(); } } public void newFrame() { ps.grabFrame(); myImage = ps.getImage(); repaint(); } public void paint(Graphics g) { if (myImage != null) { g.setColor(255); g.fillRect(0, 0, getWidth(), getHeight()); g.drawImage(myImage, x,y, 0); } } } }