Na ja, bei mp3 fällt dir dann wieder der Java-Standard auf die Füße: mp3 wird nämlich nicht unterstützt.
Wav wird zwar unterstützt, wobei sich die Unterstützung leider von Update zu Update verändert und man daher nicht garantieren kann, dass der Code von Heute Morgen auch noch funktioniert :-(.
Na ja, die Klassen für so etwas sind Clip.
Eine gute Anleitung findest du in oben genanntem "Java-Buch". Folgend findest du ein kleines Codebeispiel...
Abspielen eines Sounds über Clip
[Java]import java.io.File;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineEvent;
import javax.sound.sampled.LineListener;
public class Soundspielen {
public Soundspielen(File audiofile) {
try {
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(audiofile);
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-Event
clip.addLineListener(new LineListener() {
public void update(LineEvent event) {
System.out.println(event.getFramePosition());
}
});
// Clip abspielen
clip.start();
// Warten bis der Clip beendet wurde
while (true) {
try {
Thread.sleep(100);
} catch (Exception e) {
// nothing
}
if (!clip.isRunning()) {
break;
}
}
clip.stop();
clip.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
File audiofile = new File("C:\\alert.wav");
new Soundspielen(audiofile);
}
}[/Java]