import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import javax.microedition.media.control.RecordControl;
import javax.microedition.midlet.MIDlet;
public class SaveCapturedAudioMIDlet extends MIDlet implements CommandListener {
private Display display = null;
private Alert alert = new Alert("Message");
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
private Player capturePlayer = null;
private Player playbackPlayer = null;
private RecordControl rControl = (RecordControl) capturePlayer.getControl("javax.microedition.media.control.RecordControl");
public SaveCapturedAudioMIDlet() {
display = Display.getDisplay(this);
alert.setTimeout(Alert.FOREVER);
alert.setString("Capturing for 10 seconds.");
alert.addCommand(exitCommand);
alert.setCommandListener(this);
try {
capturePlayer = Manager.createPlayer("capture://audio");
if (capturePlayer != null) {
capturePlayer.realize();
display.setCurrent(alert);
if (rControl == null)
throw new Exception("No RecordControl available");
rControl.setRecordLocation("file:///test.wav");
} else {
throw new Exception("Capture Audio Player is not available");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void startApp() {
try {
capturePlayer.start();
rControl.startRecord();
Thread.sleep(10000);
rControl.stopRecord();
rControl.commit();
capturePlayer.stop();
capturePlayer.close();
playbackPlayer = Manager.createPlayer("file:///test.wav");
playbackPlayer.start();
} catch (Exception e) {
e.printStackTrace();
}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command cmd, Displayable disp) {
if (cmd == exitCommand) {
destroyApp(true);
notifyDestroyed();
}
}
}