Lame aus Java-Programm starten

mofa84

Lieutenant
Registriert
Sep. 2002
Beiträge
913
Also ich möchte ne kleine GUI für Lame schreiben, aber ich scheiter jetzt schon:

Wenn ich Lame aus der main-Methode starte, klappt es:
Code:
try {
   Runtime.getRuntime().exec("lame test.wav");
}
catch (Exception e) {
   System.err.println(e.toString());
}

Wenn ich das allerdings auf nen Button lege, startet Lame zwar (im Hintergrund, nächstes Problem) und die Datei test.wav.mp3 wird erstellt, aber nichts berechnet und Lame also auch nicht beendet. (wenn ich waitFor() benutze hängt das Programm so lange bis ich Lame kille)

Das zweite schon angesprochene Probleme ist dass Lame in beiden Fällen unsichtbar startet, also nur im Task-Manager sichtbar ist. Was kann man da machen?

Das ganze muss nur unter Windoof laufen und die Lame.exe befindet sich im selben Verzeichnis wie die GUI.
 
Erst einmal schreibe dir ne Klasse extends Thread die Lame startet, das verhindert dann auch, dass die Gui hängt.

Dann kannst du (weil es ja nur für Windows sein soll) Lame mit "cmd /C lame test.wav" aufrufen. CMD sorgt für eine Console und die wird beendet sobald Lame fertig ist. Dann sollte auch das waitfor kein Problem sein ;)

Habe es selbst nicht getestet, sollte aber klappen
 
Daddes schrieb:
Erst einmal schreibe dir ne Klasse extends Thread die Lame startet, das verhindert dann auch, dass die Gui hängt.

Dann kannst du (weil es ja nur für Windows sein soll) Lame mit "cmd /C lame test.wav" aufrufen. CMD sorgt für eine Console und die wird beendet sobald Lame fertig ist. Dann sollte auch das waitfor kein Problem sein ;)

Habe es selbst nicht getestet, sollte aber klappen
thread ist es schhon, das mit dem cmd werd ich mal probieren
 
Zurück
Oben