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(); } }}