Sound abspielen

RegenSonne

Aktives Mitglied
Hey, ich hätte mal wieder eine Frage.. und zwar bekomme ich hier einen fehler und ich wüsste gerne was hier falsch ist:

Java:
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
public class PlaySound {
 
 static AudioInputStream inputStream;
 public PlaySound(){
  try {
   Clip clip = AudioSystem.getClip();
   
   try {
    inputStream = AudioSystem.getAudioInputStream(new File("C:\\Users\\<Name>\\Desktop\\Java\\CircleAttack\\src\\Sound\\backgroundmusik.mp3"));
   } catch (UnsupportedAudioFileException | IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   try {
    clip.open(inputStream);
    clip.start();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   
   
  } catch (LineUnavailableException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
 }
}

Fehlermeldung:
Java:
javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file
 at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
 at apack.PlaySound.<init>(PlaySound.java:21)
 at apack.Main.main(Main.java:69)
Exception in thread "main" java.lang.NullPointerException
 at com.sun.media.sound.DirectAudioDevice$DirectClip.open(Unknown Source)
 at apack.PlaySound.<init>(PlaySound.java:27)
 at apack.Main.main(Main.java:69)

LG und danke für alle Antworten ^^
 
Und das war auch sicher eine richtige WAV Datei und nicht nur ein anderes Format im Dateinamen umbenannt? ;D
MP3 kann Java so meines Wissens nach schon aus Lizenztechnischen Gründen nicht out-of-the-box. Habe deinen Code mit einer WAV getestet und er funktioniert.
 
@Kababär - Ja, leider. Ich habe immer irgendwie das Gefühl, dass die Java-Leute selbst überrascht waren, was die GUI für eine Traktion gewonnen hatte. Aber statt sie zu verbessern (im Hinblick auf Medien, System-Interoperabilität, ...) haben sie es - wie so oft - stagnieren lassen. Schade.
Vielleicht kann man jedoch mit Integrationen wie vlcj etwas gewinnen...
 
@dzim Ja vlcj habe ich mir auch mal angesehen. Das Problem dabei Ist, finde ich, dass man keine volle Kontrolle oder starke API damit hat. Vieles ist möglich, nur nicht alles, einfache Dinge werden umgesetzt. Wenn man aber komplexe Oberflächen bauen will mit individueller Logik hinten dran, dann muss man oft low-lvl APIs benutzen (bspw Xuggler). Es gibt aber auch manch andere kleinere Github Projekte, die aber mehr als unvollständig sind nur ein Ziel verfolgen wie bspw die Webcam Capture API von sarxos.
Das ist aber bestimmt auch nur eine Sache von Angebot und Nachfrage, könnte ich mir vorstellen.
 
JavaFx kann mp3 abspielen.
Stimmt natürlich. Wollte neulich per Java MP3 Dateien abspeichern (Kodieren) und daher war da noch diese Lizenzgeschichte im Gedächtnis. Wobei eine kurze Google Recherche zeigt, dass auch das nun Geschichte ist.

"Seit dem 23. April 2017 ist das MP3-Lizenzprogramm des Fraunhofer IIS ausgelaufen, sodass Encoding und Decoding nun frei sind.[3]"
 

Zurück
Oben