Ich habe den folgenden Code-Schnipsel:Java ogg zu wav Konvertierung
File file = new File(sourceFile);
AudioInputStream in = AudioSystem.getAudioInputStream(file);
AudioInputStream din = null;
AudioFormat baseFormat = in.getFormat();
AudioFormat decodedFormat = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED, baseFormat.getSampleRate(),
16, baseFormat.getChannels(), baseFormat.getChannels() * 2,
baseFormat.getSampleRate(), false);
din = AudioSystem.getAudioInputStream(decodedFormat, in);
AudioSystem.write(din, AudioFileFormat.Type.WAVE, new File(targetFile));
ich diesen Code schrieb Dateien MP3 und OGG transfrom in WAV-Dateien. Diese Formate werden nicht von Java standardmäßig unterstützt, wie ich es verstehe, so hatte ich verschiedene Gläser zu meinem Classpath hinzufügen, wie hier beschrieben:
http://www.javazoom.net/mp3spi/documents.html
http://www.javazoom.net/vorbisspi/documents.html
Der Code läuft gut, wenn ich die Umwandlung MP3-Dateien. Aber wenn ich versuche, OGG-Dateien zu konvertieren bekomme ich folgende Fehlermeldung:
java.lang.IllegalArgumentException: Unsupported conversion: PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian from VORBISENC 44100.0 Hz, unknown bits per sample, stereo, 1 bytes/frame, 16000.0 frames/second
Nun ist dies nur ausgelöst, wenn die Input selbst decodiert zu werden, was bedeutet, dass die ogg-Datei successfuly analysiert wurde.
AudioSystem.getTargetEncodings(sourceFormat)
Der obige Code gibt keine Werte zurück, wenn keine MP3- oder OGG-Dateien verarbeitet werden. Der einzige Unterschied ist, dass MP3 gut funktioniert.
Ich habe alle von der vorherigen Verbindung referenzierten Dateien hinzugefügt, die für die ogg-Konvertierung benötigt werden, mit Ausnahme der neuesten Version von jogg-0.0.7.jar, weil ich sie nicht finden konnte.
Ich habe versucht verschiedene Lösungen wie JAVE, aber ich brauche es auch auf MAC laufen, und JAVE wird nicht auf MAC ohne irgendeine spezielle Implementierung laufen.
Hat jemand einen Vorschlag, was das Problem verursachen könnte? Gibt es eine Möglichkeit, die OGG-Datei in WAV zu konvertieren?
EDIT:
Ow wow ich erkennen, was das Problem ist ... Nach dem Everthing Lesen auf dem Handbuch habe ich gelernt, dass zwei verschiedene Arten von SPIs mit (wie in diesem Fall MP3 und OGG) kann dazu führen, Probleme. Ich habe die MP3 spi maven-Abhängigkeit entfernt und der Fehler ist verschwunden. Dachte das Ergebnis wav ist grundsätzlich leer. Irgendwelche Vorschläge dazu? Ich werde mich freuen, wenn ich OGG zur WAV-Transformation zur Arbeit bringen kann, kann ich MP3 auf andere Weise transformieren.
Meine pom Abhängigkeit sieht wie folgt aus:
<dependency>
<groupId>com.googlecode.soundlibs</groupId>
<artifactId>vorbisspi</artifactId>
<version>1.0.3-1</version>
</dependency>
Diese Downloads, die ich alle Gläser denke, ich brauche, um OGG Transformation Arbeit zu machen. (Sieht aus wie nicht.)
Ist das was du willst? https://poi1.googlecode.com/files/jogg-0.0.7.jar – longhua
Ich fand, dass Jar, ich konnte einfach nicht die Maven Abhängigkeit dafür finden, also wollte ich es nicht verwenden. Ich habe versucht, es aus einem lib-Ordner, aber kein bueno zum Klassenpfad hinzuzufügen. Sry, ich habe viel Zeit mit diesem Thema verschwendet, das habe ich vergessen zu erwähnen. –
Hinzufügen tritonus_jorbis-0.3.6.jar (http://tritonus.org/tritonus_share-0.3.6.jar) kann OGG korrekt in WAV konvertieren. Nicht sicher warum. – longhua