Ho il seguente frammento di codice:Java ogg alla conversione wav
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));
Ho scritto questo codice per transfrom file MP3 e OGG in file WAV. Questi formati non sono supportati da Java per default a quanto ho capito, quindi ho dovuto aggiungere diversi vasi al mio percorso di classe, come descritto qui:
http://www.javazoom.net/mp3spi/documents.html
http://www.javazoom.net/vorbisspi/documents.html
Il codice viene eseguito bene quando sto convertendo File MP3 Ma quando cerco di convertire i file OGG ottengo il seguente errore:
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
Ora questo è gettato solo quando ricevendo il decodificato InputStream in sé, il che significa che il file ogg è stato analizzato con successo.
AudioSystem.getTargetEncodings(sourceFormat)
Il codice sopra riportato non restituisce alcun valore, durante l'elaborazione di file MP3 o OGG. L'unica differenza è che l'MP3 funziona bene.
Ho aggiunto tutti i jar a cui fa riferimento il collegamento precedente necessario per la conversione ogg tranne l'ultima versione di jogg-0.0.7.jar perché non riuscivo a trovarlo.
Ho provato diverse soluzioni come JAVE ma ho bisogno che funzioni anche su MAC, e JAVE non funzionerà su MAC senza qualche implementazione speciale.
Qualcuno ha qualche suggerimento che cosa può causare il problema? Può esserci qualche soluzione per convertire i file OGG in WAV?
EDIT:
Ow wow ho capito qual è il problema ... Dopo aver letto everthing sul manuale, ho imparato che l'utilizzo di due diversi tipi di SPI (come in questo caso MP3 e OGG) può causare i problemi. Ho rimosso la dipendenza da MP3 spi maven e l'errore è scomparso. Ho pensato che il risultato wav fosse fondamentalmente vuoto. Qualche suggerimento su questo? Sarò felice se riuscirò a far funzionare OGG in trasformazione WAV, posso trasformare MP3 in un altro modo.
mia dipendenza pom si presenta così:
<dependency>
<groupId>com.googlecode.soundlibs</groupId>
<artifactId>vorbisspi</artifactId>
<version>1.0.3-1</version>
</dependency>
Questo download Credo che tutto vasetti ho bisogno di fare il lavoro OGG trasformazione. (Sembra che non sia.)
È questo quello che vuoi? https://poi1.googlecode.com/files/jogg-0.0.7.jar – longhua
Ho trovato che jar non riusciva a trovare la dipendenza Maven per questo, quindi non volevo usarlo. Ho provato a caricarlo aggiungendolo a classpath da una cartella lib ma non bueno. Sry Ho sprecato un sacco di tempo con questo problema, ho dimenticato di dirlo. –
Aggiungi tritonus_jorbis-0.3.6.jar (http://tritonus.org/tritonus_share-0.3.6.jar) può convertire OGG in WAV correttamente. Non so perché. – longhua