Eclipse mp3 wird im Jar-File nicht gefunden

iChaos

Aktives Mitglied
HI zusammen

folgendes Problem:

Wenn ich mit meinem Chat Nachrichten versende, wird ein Sound abgespielt. Sobald ich eine jar-Datei von eclipse aus, erstelle funktioniert das mp3 File nicht mehr, der Pfad wird irgendwie nicht gefunden.

Wie kann ich das Problem beheben?
 
Wie versuchst du denn, die Datei zu laden? Als File? Das wird nicht gehen. Über den ClassLoader? Das sollte funktionieren.
Zeig mal den relevanten Code und die Struktur des Jar-Files (wo steht das mp3?).
 
Java:
public class SoundEngine {
	
	public SoundEngine() throws FileNotFoundException, JavaLayerException{
		String adress = "/chaosChat/chaosChat/gui/boelle.mp3";
		AdvancedPlayer player = new AdvancedPlayer(new FileInputStream(adress));
		player.play();
	}	
}


Die mp3 Datei befindet sich im selben Ort wie die Class Dateien
Hatte dasselbe Problem schon mit dem Hintergrundbild, jedoch konnte ich das mit getResource lösen
Da ich aber JLayer verwende, wird bei der Adresse ein Strnig erwartet... wenn ich getResource mache, will er in URI umwandeln...
 
Du musst dir den InputStream vom CL holen, da du nicht per File auf Dateien zugreifen kannst, welche sich in einem Jar befinden.
Class (Java Platform SE 6)
Java:
AdvancedPlayer player = new AdvancedPlayer(getClass().getResourceAsStream(adress));
 
Du musst dir den InputStream vom CL holen, da du nicht per File auf Dateien zugreifen kannst, welche sich in einem Jar befinden.
Class (Java Platform SE 6)
Java:
AdvancedPlayer player = new AdvancedPlayer(getClass().getResourceAsStream(adress));

Was ist dieses getClass() ?

Bei mir gibt es die nicht.

Mein Methodenkopf:

class Task extends TimerTask{...}

Java:
		        try{
		        	
		        	
		        	
		        	
		            AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("./src/tada.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);
		            
		           // for(int i=0; i < 32; i++) {
		                Clip clip = (Clip) AudioSystem.getLine(info);
		                
		                clip.open(af, audio, 0, size);
		                clip.start();

		                
		           // }
		        }catch(Exception e){ e.printStackTrace(); }

Wie muss ich das umschreiben, dass ich auch auf den Inputstream geht?
Was ist das überhaupt?!
 
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("tada.wav"));

Damit findet die jar Datei den File nun, aber er wird viel zu kurz abgespielt.
anyone?
 

Neue Themen


Zurück
Oben