The following code will give you a demonstration on how to take a snapshot from a playing video.
Preconditions,
resource available at "/mmawtk.mpeg";
VideoSnapShotJPEG.java
/*
* VideoSnapShotJPEG.java
* Dec 24, 2007
*/
package midlet;

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

import com.mot.lrt.midp.mmapi.Const;
import com.mot.lrt.midp.mmapi.video.FormVideoPlayer;

/**
* MIDlet to take a snapshot from a playing video
*
* @author author
*
*/
public class VideoSnapShotJPEG extends MIDlet implements CommandListener {

private Display display;

private FormVideoPlayer vp;

public VideoSnapShotJPEG() {
// TODO Auto-generated constructor stub
}

protected void destroyApp(boolean arg0) {
vp.closePlayer();
super.notifyDestroyed();

}

protected void pauseApp() {
// TODO Auto-generated method stub

}

protected void startApp() throws MIDletStateChangeException {
if (display == null) {
initUI();
}
vp = new FormVideoPlayer("/mmawtk.mpeg", "video/mpeg");
vp.setCommandListener(this);
display.setCurrent(vp);

vp.openPlayer();
}

private void initUI() {
display = Display.getDisplay(this);

}

public void commandAction(Command c, Displayable arg1) {
if (Const.CMD_SNAPSHOT.equals(c)) {
vp.snapshot();
}
if (Const.CMD_EXIT.equals(c)) {
this.destroyApp(true);
}

}

}
FormVideoPlayer.java
/*
* FormVideoPlayer.java
* Dec 20, 2007
*/
package com.vendor.dept.prj.subprj.video;

import java.io.IOException;
import java.io.InputStream;

import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.ImageItem;
import javax.microedition.lcdui.Item;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
import javax.microedition.media.control.GUIControl;
import javax.microedition.media.control.VideoControl;

import com.vendor.dept.prj.subprj.Const;

/**
* Object of a video player
*
* @author authorname
*
*/
public class FormVideoPlayer extends Form {

private static final int LOOP = 5;

static Player player = null;

ImageItem img;

int imgid;

private InputStream is;

int length;

private String mimeType;

private String uri;

VideoControl vc;

private Item vitem;

/**
* @param string
*
*/
public FormVideoPlayer(String URI, String type) {
super(URI);

this.mimeType = type;
this.uri = URI;

initUI();
}

void appf(String s) {
System.out.println(s);
this.append(s);
}

public void closePlayer() {
if (player != null) {
player.close();
player = null;
}

if (is != null) {
try {
is.close();
} catch (IOException e) {
// ignored
}
is = null;
}
}

private void initUI() {
this.addCommand(Const.CMD_EXIT);
addCommand(Const.CMD_SNAPSHOT);

// byte []logo = readLogo();

try {
Image logo = Image.createImage(Const.URI_LOGO);
img = new ImageItem("", logo, ImageItem.LAYOUT_CENTER, "");

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

imgid = append(img);

}

public void openPlayer() {
appf(uri + ";" + mimeType);
is = this.getClass().getResourceAsStream(uri);
try {
player = Manager.createPlayer(is, mimeType);

player.setLoopCount(LOOP);

appf("realizing");
player.realize();

vc = (VideoControl) player.getControl("VideoControl");
if (vc != null) {
vitem = (Item) vc.initDisplayMode(GUIControl.USE_GUI_PRIMITIVE,
null);
append(vitem);
}

appf("prefetching");
player.prefetch();

appf("starting");
player.start();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MediaException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public void snapshot() {
if (vc == null) {
// fetal error
}
Thread t = new Thread() {
public void run() {
try {
byte[] b = vc.getSnapshot(Const.SNAP_ENCODING_JPEG);

length = b.length;
Image shot = Image.createImage(b, 0, length);
set(imgid, new ImageItem("", shot,
ImageItem.LAYOUT_DEFAULT, ""));
} catch (MediaException e) {
appf(e.toString());
}
}
};
t.start();

}

}
Const.java
/*
* Const.java
* Dec 20, 2007
*/
package com.vendor.dept.prj.subprj;

import javax.microedition.lcdui.Command;

/**
* @author authorname
*
*/
public class Const {
public static final Command CMD_EXIT = new Command("Exit", Command.EXIT, 0);

public static final Command CMD_SNAPSHOT = new Command("Snap", Command.OK,
1);

public static final Command CMD_START = new Command("Start", Command.OK,
2);

public static final String SNAP_ENCODING_JPEG = "encoding=jpeg";

public static final String URI_LOGO = "/j_32x32.jpg";
}
Preconditions,
resource available at "/mmawtk.mpeg";
VideoSnapShotJPEG.java







































































FormVideoPlayer.java
































































































































































Const.java

























