wav datei aus jar Abspielen

Anton2k

Aktives Mitglied
Hallo, wieder so ein Problem was mir überhaupt nicht einleuchtet.

Ich möchte ein kurzes Ding im Programm abspielen bei bestimmten Handlungen. Klappt auch mit dem gleich folgenden Code solange ich das ganze noch normal auf der Festplatte in der Ordner struktur habe. Aber sobald ich das ganze als Jar packe und der Sound abgespielt werden sollte hört man gar nichts, es wird aber auch keine Exception ausgelöst. Wenn ich mir den Pfad ausgeben lasse mit dem er Arbeitet ist die Datei im Jar auch richtig adressiert aber es kommt eben leider kein ton.

Diesen Code hab ich jetzt verwendet.

Code:
			AudioInputStream audioInputStream;
			try {

			  audioInputStream = AudioSystem.getAudioInputStream(getClass().getClassLoader().getResourceAsStream("Sounds/Bleep.wav"));
			  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();

			} catch (UnsupportedAudioFileException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			} catch (LineUnavailableException e) {
				e.printStackTrace();
			}
 

Anton2k

Aktives Mitglied
Scheint ja nicht so trivial oder bekannt zu sein das Problem. Hab es versucht mit viel Google suchen einzugrenzen leider ohne erfolg. Etwas rumprobieren und ausgeben lassen der Variablen inhalte ergab allerdings das der Fehler vermutlich in dieser Zeile liegt
Code:
audioInputStream.read(audio, 0, size);
Aus dem Jar ist der inhalt des audio[] danach 00000..... Anstelle davon das es sinnvolle daten enthält.
Aber wie gesagt nur wenn man es als Jar ausführt und er den Sound aus der jar laden soll.
 

Steev

Bekanntes Mitglied
Hmm. Das Problem ist, dass man bei so einem Problem nicht vernünftig helfen kann...
Wenn du vieleicht ein KSKB posten könntest, und derselbe Fehler bei mir auch käme, dann könnte man besser helfen.
So ist währe das bestenfalls nur raten...
 

Anton2k

Aktives Mitglied
Hab das ganze mal als KSKB verpackt hier hochgeladen:
Gepacketes Eclipse Projekt

Alternativ hier nur der Quellcode:
Java:
import java.io.IOException;

import javax.sound.sampled.*;



public class Start {

	public void macheTon (){

		try {

		 AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(getClass().getClassLoader().getResourceAsStream("Sounds/Bleep.wav"));
		 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);
		  
		 System.out.println("Größe: "+size);
		 System.out.println("Info: "+info);
		  
	     Clip clip = (Clip) AudioSystem.getLine(info);
	     clip.open(af, audio, 0, size);
	     clip.start();
	    
         Thread.currentThread().sleep(400);
	    
		} catch (UnsupportedAudioFileException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (LineUnavailableException e) {
			e.printStackTrace();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}

	}
	
	public static void main(String[] args) {
		new Start().macheTon();
	}
}

Die Soundfile falls es interessant sein sollte gibt es hier:
Sound Effects Beeping Clicks

Auch bei diesem mini Test Projekt klappt es solange es einzeln auf der Festplatte liegt. Sobald es in ein Jar verpackt wir kommt kein ton mehr.

Erweiternd könnte man natürlich noch das Array ausgeben lassen:
Java:
			  for (int i=0;i<size;i=i+1000){
			  	System.out.print(audio[i]);
			  }
Dann sieht man das beim normalen Start der inhalt mit Daten gefüllt ist vom Array und beim start als jar eben nur 0 enthält.

Der Tip mit dem Toolkit.getDefaultToolkit().beep(); funktioniert zwar auf jeden fall aber der normale system Standardton würde mich schnell nerven.
 
Zuletzt bearbeitet:

Anton2k

Aktives Mitglied
Nach noch weiterem herum suchen hab ich einen Code schnipsel gefunden der mir weiter geholfen hat und das ganze kommt noch dazu ein gutes Stück simpler daher.

Java:
      URL url = this.getClass().getClassLoader().getResource("Sounds/Bleep.wav");
      AudioInputStream audioIn = AudioSystem.getAudioInputStream(url);
      // Get a sound clip resource.
      Clip clip = AudioSystem.getClip();
      // Open audio clip and load samples from the audio input stream.
      clip.open(audioIn);
      clip.start();

Damit wird es richtig abgespielt egal ob in Jar oder direkt ausgeführt. Vermute es hatte mit der Adressierung der Sound Datei zu tun das er sie in der Jar nicht richtig gefunden hat. Warum ich keine Exception bekommen habe und er anscheinent aus dem nichts 0000.... gelesen hat verstehe ich allerdings nicht.
 

Steev

Bekanntes Mitglied
Guck doch einfach mal mit der VirtualVM was intern passiert. Ich bin mir ziemlich sicher, dass entweder irgendwo eine Exception geworfen, aber nicht weitergegeben wird, oder dass zwar die Datei gefunden wird, aber so nicht mehr abgespielt werden kann.

Keine Ahnung, die Sound-API von Java wirft manchmal Fragen auf...
Ich hatte mal einen Sound, der hat unter der alten JDK wunderbar funktioniert. Dann habe ich die JDK geupdatet und derselbe Code hat einen Fehler geworfen. - Mit der nächsten JDK ging es wieder....
 

WurstMitBrot

Neues Mitglied
Hi Leute,

ich habe das gleiche Problem und dann einfach mal den Lösungsansatz von Anton2k ausprobiert.
Wenn ich das Programm nun mit der jar Datei starte ist du url = null.
Weiss jemand woran das liegen könnte?

mfg WurstMitBrot
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P .Wav Datei vor main-Methode abspielen? Spiele- und Multimedia-Programmierung 9
MABY Eine mp3 Datei in Java abspielen Spiele- und Multimedia-Programmierung 14
H wma Datei abspielen: java.io.IOException: Resetting to invalid mark Spiele- und Multimedia-Programmierung 11
N bei abspielen der wav datei fehler Spiele- und Multimedia-Programmierung 6
R Wave-Datei mit JLayer abspielen Spiele- und Multimedia-Programmierung 4
M "Java Datei" Cannot be resolved to a variable Spiele- und Multimedia-Programmierung 2
H Musik Datei lädt nicht? Spiele- und Multimedia-Programmierung 8
K Das Leerzeichen der Tastatur wird nicht gleichgesetzt mit dem Leerzeichen aus der Text Datei Spiele- und Multimedia-Programmierung 5
F SO-Datei compilieren... Spiele- und Multimedia-Programmierung 1
G Audio-Datei analysieren Spiele- und Multimedia-Programmierung 3
J Programm kann Audio Datei nicht finden Spiele- und Multimedia-Programmierung 7
L Wiedergabe von wav-Datei aus jar fehlerhaft Spiele- und Multimedia-Programmierung 2
Polarfuchs Status von Midi Datei(wird gerade abgespielt oder nicht) Spiele- und Multimedia-Programmierung 0
T Minecraft Bukkit Plugin Text Datei auslesen Spiele- und Multimedia-Programmierung 1
E .jar-Datei tut nichts Spiele- und Multimedia-Programmierung 5
C Highscoreliste mit SharedPreferences oder XML-Datei? Spiele- und Multimedia-Programmierung 1
D Probleme mit der Runnable jar Datei Spiele- und Multimedia-Programmierung 3
I Minecraft NBT Minecraft *.dat-Datei - Verständnisproblem Spiele- und Multimedia-Programmierung 26
L Werte aus einer .yml Datei lesen Spiele- und Multimedia-Programmierung 9
J Audio Input mit Datei abgleichen Spiele- und Multimedia-Programmierung 11
M Internet Java Spiel (.jar Datei) auf dem PC ausführen Spiele- und Multimedia-Programmierung 7
R Savegame als Datei, welche API-Klasse benutzen Spiele- und Multimedia-Programmierung 8
A Audio-Datei auf Mikrofonausgang senden? Spiele- und Multimedia-Programmierung 2
S MP3 Datei informationen bearbeiten Spiele- und Multimedia-Programmierung 9
Guybrush Threepwood Overhead: Ressourcen in Jar-Datei Spiele- und Multimedia-Programmierung 4
P .obj-Datei in Java3D laden: ParsingErrorException Spiele- und Multimedia-Programmierung 7
R JLayer player spielt nur eine mp3 Datei ab Spiele- und Multimedia-Programmierung 1
W Bitmap aus Datei erstellen Spiele- und Multimedia-Programmierung 5
M Das Frequenzspektrum einer WAV/MP3-Datei anzeigen Spiele- und Multimedia-Programmierung 6
S benutzerdefiniertes Tileset in Datei speichern Spiele- und Multimedia-Programmierung 3
J Zeichnen in BufferedImage und dieses in Datei speichern Spiele- und Multimedia-Programmierung 2
M Directx Datei laden Spiele- und Multimedia-Programmierung 3
M Probleme mit WaveFront-Object - Datei Spiele- und Multimedia-Programmierung 7
M mehrere PNG in eine Datei Spiele- und Multimedia-Programmierung 3
G Einen gif oder jpg Datei aus einem Graphics Objekt o. JFrame Spiele- und Multimedia-Programmierung 2
M Audio Track einer Musik CD abspielen mittels vlcj-Bibliothek Spiele- und Multimedia-Programmierung 0
S AAC abspielen Spiele- und Multimedia-Programmierung 9
S Sounds abspielen Spiele- und Multimedia-Programmierung 11
Blender3D VLCJ Video lässt sich nicht mehr abspielen nach mysql Installation Spiele- und Multimedia-Programmierung 1
K Sound im loop abspielen, wenn boolscher wert true ist Spiele- und Multimedia-Programmierung 3
J Musik abspielen Spiele- und Multimedia-Programmierung 11
C Midi abspielen und Listener anmelden? Spiele- und Multimedia-Programmierung 1
I Sound Dateien abspielen Spiele- und Multimedia-Programmierung 9
C Sound einfügen und abspielen Spiele- und Multimedia-Programmierung 6
F Einen Sound mit veränderter Tonhöhe und Geschwindigkeit abspielen - Hilfe erbeten Spiele- und Multimedia-Programmierung 29
F Problem mit dem Abspielen von byte[] (Audioprogrammierung) Spiele- und Multimedia-Programmierung 2
C Problem mit Abspielen von Audio-Dateien Spiele- und Multimedia-Programmierung 3
S Sounds abspielen, ohne sie jedesmal neu zu laden Spiele- und Multimedia-Programmierung 8
F WAV Abspielen Spiele- und Multimedia-Programmierung 15
P Video in JAVA abspielen,... Spiele- und Multimedia-Programmierung 3
T Sound schneller abspielen Spiele- und Multimedia-Programmierung 4
S Uneffizientes Abspielen von Sounds?! Spiele- und Multimedia-Programmierung 4
Guybrush Threepwood Beste Möglichkeit zum Abspielen von MP3 Spiele- und Multimedia-Programmierung 3
StrikeTom .gif animation als image abspielen Spiele- und Multimedia-Programmierung 2
W CannotRealizeException (jmf) beim abspielen eines liedes Spiele- und Multimedia-Programmierung 3
P Sound auf zwei Lautsprechern getrennt abspielen Spiele- und Multimedia-Programmierung 9
N Totaler Absturz beim mehrmaligen Abspielen von Sounds Spiele- und Multimedia-Programmierung 5
H JMF - Video Abspielen Spiele- und Multimedia-Programmierung 12
B videos abspielen Spiele- und Multimedia-Programmierung 2
B Frage zum Abspielen von Sounddateien Spiele- und Multimedia-Programmierung 2
0 Crashes beim Abspielen von Sounds unter Win98 Spiele- und Multimedia-Programmierung 12
G Abspielen von Sounds in Java3D Spiele- und Multimedia-Programmierung 13

Ähnliche Java Themen


Oben