Technoblade
Erfahrenes Mitglied
Hi,
ich bin neu hier im Forum und hab direkt mal eine Frage
Folgendes ist Code aus einem beispiel aus dem Buch Java lernen mit BlueJ
mich persönlich interessiert hier der mittlere Teil in dem das tmp Format erstellt wird. Dieses würde ich gerne auch für mp3 umsetzen für ein Schulprojekt. Wenn ich allerdings versuche eine mp3 Datei zu laden wird direkt in der Zeile unter dem Try eine Exception geworfen. Diese sieht wie folgt aus: "could not get audio input stream from input file". Ich habe mittlerweile schon gesehn, dass es viele Packages die von Nutzern geschrieben wurden gibt. Allerdings hat mir keins davon (soweit die Links nicht zu Error 404 führten) weitergeholfen. Jetzt ist meine simple Frage, gibt es eine möglichst triviale Möglichkeit in Java mp3's zu laden oder müssen wir jegliche Sounds konvertieren?
ich bin neu hier im Forum und hab direkt mal eine Frage

Folgendes ist Code aus einem beispiel aus dem Buch Java lernen mit BlueJ
mich persönlich interessiert hier der mittlere Teil in dem das tmp Format erstellt wird. Dieses würde ich gerne auch für mp3 umsetzen für ein Schulprojekt. Wenn ich allerdings versuche eine mp3 Datei zu laden wird direkt in der Zeile unter dem Try eine Exception geworfen. Diese sieht wie folgt aus: "could not get audio input stream from input file". Ich habe mittlerweile schon gesehn, dass es viele Packages die von Nutzern geschrieben wurden gibt. Allerdings hat mir keins davon (soweit die Links nicht zu Error 404 führten) weitergeholfen. Jetzt ist meine simple Frage, gibt es eine möglichst triviale Möglichkeit in Java mp3's zu laden oder müssen wir jegliche Sounds konvertieren?
Code:
private boolean ladeSound(File datei)
{
aktuellerClipLaenge = 0;
try {
AudioInputStream stream = AudioSystem.getAudioInputStream(datei);
AudioFormat format = stream.getFormat();
// Wir können ALAW/ULAW nicht abspielen,
// also konvertieren wir sie nach PCM
//
if ((format.getEncoding() == AudioFormat.Encoding.ULAW) ||
(format.getEncoding() == AudioFormat.Encoding.ALAW))
{
AudioFormat tmp = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
format.getSampleRate(),
format.getSampleSizeInBits() * 2,
format.getChannels(),
format.getFrameSize() * 2,
format.getFrameRate(),
true);
stream = AudioSystem.getAudioInputStream(tmp, stream);
format = tmp;
}
DataLine.Info info = new DataLine.Info(Clip.class,
stream.getFormat(),
((int) stream.getFrameLength() *
format.getFrameSize()));
aktuellerClip = (Clip) AudioSystem.getLine(info);
aktuellerClip.open(stream);
aktuellerClipFrameGroesse = (int) stream.getFrameLength();
aktuellerClipLaenge = (int) (aktuellerClip.getBufferSize() /
(aktuellerClip.getFormat().getFrameSize() *
aktuellerClip.getFormat().getFrameRate()));
return true;
} catch (Exception ex) {
aktuellerClip = null;
return false;
}
}