Ich habe ein kleines Programm geschrieben, mit dem ich hoffe aufnehmen zu können..
Er führt das Programm auch einwandfrei aus, aber wenn die gespeicherte Datei test.wav suche, existiert sie nicht!!
Wo liegt mein Fehler??
Für Verbesserungen/Korrekturen zu meinem Programm würde ich mich sehr freuen!!
Man kann aus Fehlern ja nur lernen..
Er führt das Programm auch einwandfrei aus, aber wenn die gespeicherte Datei test.wav suche, existiert sie nicht!!
Wo liegt mein Fehler??
Für Verbesserungen/Korrekturen zu meinem Programm würde ich mich sehr freuen!!
Man kann aus Fehlern ja nur lernen..
Java:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
import javax.microedition.media.control.RecordControl;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class FirstCapture extends MIDlet implements CommandListener {
private Command b_exit, b_record, b_stop;
private Form form;
private Display display;
private Player capturePlayer, playbackPlayer;
private byte[] recordedAudioArray = null;
private RecordControl rc;
private ByteArrayOutputStream output = new ByteArrayOutputStream();
private Thread t;
public FirstCapture() {
display = Display.getDisplay(this);
b_exit = new Command("Exit", Command.EXIT, 0);
b_record = new Command("Record", Command.SCREEN, 1);
b_stop = new Command("Stop", Command.SCREEN, 2);
form = new Form("FirstCapture");
form.addCommand(b_exit);
form.addCommand(b_record);
form.addCommand(b_stop);
form.setCommandListener(this);
display.setCurrent(form);
}
public void commandAction(Command c, Displayable d) {
if(c==b_exit){
try {
this.destroyApp(false);
} catch (MIDletStateChangeException e) {
e.printStackTrace();
}
}
if(c==b_record){
t = new Thread(){
public void run(){
try {
form.append("Player erstellen");
capturePlayer = Manager.createPlayer("capture://audio?encoding=pcm");
form.append("Player.realize()");
capturePlayer.realize();
form.append("RecordControl eerstellen");
rc = (RecordControl)capturePlayer.getControl("RecordControl");
form.append("RecordLocation festgelegt");
rc.setRecordLocation("file:///test.wav");
form.append("RecordControl.setRecordStream()");
rc.setRecordStream(output);
form.append("RecordControl.startRecord()");
rc.startRecord();
form.append("Player starten");
capturePlayer.start();
form.append("Player gestartet");
} catch (IOException e) {
form.append(e.getMessage());
} catch (MediaException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
t.start();
}
if(c==b_stop){
try{
form.append("RecordControl.stopRecord()");
rc.stopRecord();
form.append("RecordControl.stopRecord()");
rc.commit();
form.append("Player stoppen");
capturePlayer.stop();
form.append("Player schliessen");
capturePlayer.close();
recordedAudioArray = output.toByteArray();
form.append("Thread unterbrechen");
t.interrupt();
t = null;
}catch (Exception e) {
// TODO: handle exception
}
}
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
notifyDestroyed();
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
}
}