Musik abspielen

Java20134

Bekanntes Mitglied
Hallo,

ich habe schon seit langem vor in mein Spiel Musik abzuspielen und habe da auch schon einige Codes ausprobiert. Doch es funktioniert nicht wirklich. Könntet ihr mir da helfen?
Java:
package music;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.swing.JFrame;

public class Musik extends JFrame {

	private static final long serialVersionUID = -8944335417176425492L;

	public static void main(String[] args) {
		Musik frame = new Musik(); 
		frame.setVisible(true);
	}
	
	public Musik(){
		setTitle("Musik");
		setBounds(100,100,200,200);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		playSound(); 
	}
	
	public static void playSound(){
		new Thread(new Runnable(){
			public void run(){
				try{
					Clip clip = AudioSystem.getClip();
					AudioInputStream inputStream = AudioSystem.getAudioInputStream(
							getClass().getClassLoader().getResourceAsStream("sounds\\ende.mp3"));
					clip.open(inputStream);
					clip.start();
				}
				catch(Exception e){
					e.printStackTrace();
				}
			}
		}).start();
	}
}
So sieht mein Desktop aus: desktop.png
 
Ja da kommt eine Seite. Und selbst wenn es bei dir anscheinend nicht geht.
Google einfach mal nach dem Exception Name, es haben schon viele so ein Problem gehabt und ihnen wurde geholfen.
 
Ja, habe es ausprobiert. Dies ergibt weitere Fehler!

Aber wie weit ich nun schon die Seiten durchgeforstet habe. Ist mein Fehler wohl das ich keine .wav-Datei habe. doch es muss noch etwas falsch sein.
 
Zuletzt bearbeitet:
Ja, habe es ausprobiert. Dies ergibt weitere Fehler!

welche Fehler ?

Stacktrace bitte

btw.

Könnte man so z.B eine Wav Datei abspielen
(code stammt aus einem meiner alten Projekte und ist bei weitem nicht aktuell, aber Funktionsfähig)


du müsstest lediglich song.getFile() durch deine Datei in Form eines File objektes ersetzen.

Java:
new Thread(){
        @Override
        public void run(){
        	try {
        		AudioInputStream stream = AudioSystem.getAudioInputStream(song.getFile());
    			AudioFormat audioFormat = stream.getFormat();
    			DataLine.Info info = new DataLine.Info(Clip.class, audioFormat);
    			      Clip clip = (Clip) AudioSystem.getLine(info);
    			      clip.open(stream);
    			      clip.start();
    			        
    			      while(clip.getFramePosition() < clip.getFrameLength()) {};
    			        
                  } catch (IOException | UnsupportedAudioFileException | LineUnavailableException  e) {

                   System.out.println("Folgender Fehler ist aufgetretten : " + e.toString());
               
                  }
        }
       }.start();

entscheidend ist dieser Teil hier :

Java:
while(clip.getFramePosition() < clip.getFrameLength()) {};

da sonst der Clip nicht abgespielt wird
 
Zuletzt bearbeitet:
Ich habe deinen Code ausprobiert und bei mir kommt wieder die selbe Exception (
UnsupportedAudioFileException).

Bei der anderen Variante habe ich diesen Fehler: Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ ). Kann es irgendwo ein anderer Fehler geben?
 
Zuletzt bearbeitet:
Das kann unter anderem an der Art der Codierung liegen, ich habe dazu damals in dem Thread schon Informationen gepostet

Hier ein ausschnitt zu der nötigen Codierund der .wav datei

Es werden nur Dateien akzeptiert die PCM_SIGNED Kodiert sind, andernfalls musst du selbst dafür sorgen das deine Dateien mit dieser Kodierung vorliegen.

k2aj47du.png

und hier mal der Link zu dem Thread :

mit Java Musik machen

Vielleicht hift dir das ja weiter
 
Zuletzt bearbeitet:

Zurück
Oben