Hallo,
ich habe ein Problem mit der Wiedergabe von wav Dateien. Seit Tagen ärgere ich mich damit rum, jetzt frag ich halt doch mal nach.
Also ich habe eine wav-Datei, die soll beim Klick auf einen Button abgespielt werden. Die Datei soll später mit in die jar-Datei exportiert werden und von dort abgespielt werden...
Das normale wav Abspielen habe ich (denke ich hingekriegt) und ich binde das auch als URL ein, damit der Pfad relativ sein kann.
Hier mal kurz mein Code:
Diese while-Schleife am Ende brauche ich, weil ich dem User manche Optionen erst bereitstellen will wenn der Sound zuende abgespielt wurde.
Folgendes passiert wenn ich jetzt diesen Button klicke: Ich höre ein kurzes knacken und dann ist Stille. Die "läuft"-Ausgabe aus der while-Schleife geht aber noch weiter, das heißt es wird wohl etwas abgespielt aber man hört halt nix. Eine Exception wird auch nicht geworfen. Die URL müsste auch stimmen, also der Pfad stimmt, und ich denke dieses Ausrufezeichen stimmt auch oder?:
jar:file:/home/Programm.jar!/resources/test.wav
Achso und wenn ich das Ganze nicht mit relativen Pfaden mache (also nicht aus der jar-Datei) dann funktioniert die Wiedergabe einwandfrei... aber ich wills eben in der jar-Datei haben....
Woran könnte das liegen, dass ich den Sound nur ganz kurz höre und danach nichts mehr obwohl es offenbar weiterläuft? Es scheint ja sonst alles zu laufen... Ich hab auch schon Google und alle möglichen Foren beschäftigt und niemand hat dasselbe Problem... Kann mir jemand weiterhelfen?
Danke schon einmal
la_luna_llena
ich habe ein Problem mit der Wiedergabe von wav Dateien. Seit Tagen ärgere ich mich damit rum, jetzt frag ich halt doch mal nach.
Also ich habe eine wav-Datei, die soll beim Klick auf einen Button abgespielt werden. Die Datei soll später mit in die jar-Datei exportiert werden und von dort abgespielt werden...
Das normale wav Abspielen habe ich (denke ich hingekriegt) und ich binde das auch als URL ein, damit der Pfad relativ sein kann.
Hier mal kurz mein Code:
Java:
private void playPressed() {
try{
URL url = getClass().getResource("/resources/test.wav");
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(url);
System.out.println(url);
AudioFormat af = audioInputStream.getFormat();
int size = (int) (af.getFrameSize() * audioInputStream.getFrameLength());
byte[] audio = new byte[size];
DataLine.Info info = new DataLine.Info(Clip.class, af, size);
audioInputStream.read(audio, 0, size);
Clip clip = (Clip) AudioSystem.getLine(info);
clip.open(af, audio, 0, size);
clip.start();
while (true) {
try {
System.out.println("läuft");
Thread.sleep(100);
} catch (Exception e) {}
if (!clip.isRunning()) {
clip.close();
break;
}
}
}catch(Exception e){ e.printStackTrace(); }
Diese while-Schleife am Ende brauche ich, weil ich dem User manche Optionen erst bereitstellen will wenn der Sound zuende abgespielt wurde.
Folgendes passiert wenn ich jetzt diesen Button klicke: Ich höre ein kurzes knacken und dann ist Stille. Die "läuft"-Ausgabe aus der while-Schleife geht aber noch weiter, das heißt es wird wohl etwas abgespielt aber man hört halt nix. Eine Exception wird auch nicht geworfen. Die URL müsste auch stimmen, also der Pfad stimmt, und ich denke dieses Ausrufezeichen stimmt auch oder?:
jar:file:/home/Programm.jar!/resources/test.wav
Achso und wenn ich das Ganze nicht mit relativen Pfaden mache (also nicht aus der jar-Datei) dann funktioniert die Wiedergabe einwandfrei... aber ich wills eben in der jar-Datei haben....
Woran könnte das liegen, dass ich den Sound nur ganz kurz höre und danach nichts mehr obwohl es offenbar weiterläuft? Es scheint ja sonst alles zu laufen... Ich hab auch schon Google und alle möglichen Foren beschäftigt und niemand hat dasselbe Problem... Kann mir jemand weiterhelfen?
Danke schon einmal
la_luna_llena
Zuletzt bearbeitet: