Hi! Ich habe folgendes Problem. Über einen Klick auf einen Button wird folgende Funktion ausgeführt:
Diese Funktion wandelt eine Wave-Datei (test.wav) in eine Mp3-Datei (test.mp3)
unter Verwendung des Lame-Codecs (lame.exe) um. Sowohl Lame-Codec als auch die Wave-Datei liegen im Verzeichnis "MeinVerzeichnis".
Nun mein Problem. Der Prozess wird zwar gestartet aber die Mp3-Datei wird nur zum Teil erstellt
(so ca. 1 Sekunde des Songs).
Wenn ich aber meine gesamte Applikation dann beende, wird der Prozeß "encode" weiter ausgeführt und siehe da, auf einmal ist die Mp3-Datei vollständig. Ich nehme an, das der Prozeß also nur begrenzte Prozessorzeit hat und dann erstmal wieder meine Applikation die CPU zugeteilt bekommt. Wird die Applikation dann beendet, dann bekommt der Prozeß "encode" die CPU und macht weiter. (Ist nur ne Theorie - könnte auch was ganz anderes sein.)
Was kann ich tun, damit der Prozeß gleich bis zuende ausgeführt wird. Während er läuft,
brauche ich auch in der Applikation nichts weiter machen. (Sie kann also komplett ohne CPU-Zeit sein.)
Vielen Dank schon mal.
Code:
public static void encode(){
try{
Process encode= Runtime.getRuntime().exec("C:\\MeinVerzeichnis\\lame.exe test.wav test.mp3");
}
catch(IOException e){
System.err.println("Es ist ein I/O-Fehler aufgetreten: "+e);
}
}
unter Verwendung des Lame-Codecs (lame.exe) um. Sowohl Lame-Codec als auch die Wave-Datei liegen im Verzeichnis "MeinVerzeichnis".
Nun mein Problem. Der Prozess wird zwar gestartet aber die Mp3-Datei wird nur zum Teil erstellt
(so ca. 1 Sekunde des Songs).
Wenn ich aber meine gesamte Applikation dann beende, wird der Prozeß "encode" weiter ausgeführt und siehe da, auf einmal ist die Mp3-Datei vollständig. Ich nehme an, das der Prozeß also nur begrenzte Prozessorzeit hat und dann erstmal wieder meine Applikation die CPU zugeteilt bekommt. Wird die Applikation dann beendet, dann bekommt der Prozeß "encode" die CPU und macht weiter. (Ist nur ne Theorie - könnte auch was ganz anderes sein.)
Was kann ich tun, damit der Prozeß gleich bis zuende ausgeführt wird. Während er läuft,
brauche ich auch in der Applikation nichts weiter machen. (Sie kann also komplett ohne CPU-Zeit sein.)
Vielen Dank schon mal.