PDA

View Full Version : [Java] Convertire wav in MP3


satoshi2005
30-03-2006, 13:16
Salve gente,
Ho un problema.. Dovrei fare un programma che permetta di convertire un wav in Mpeg 2 Layer 3 (MP3).
Ho letto in giro che Java non permette la manipolazione di files MP3 nativamente. Quindi ho dovuto scaricare delle librerie esterne più altre cose che vi spiego piu avanti.
Si dice che per fare in modo che Java possa manipolare files MP3, la libreria da usare è MP3SPI, che per funzionare ha bisogno delle librerie JLayer e Tritonus. Problemino: questo package non permette di convertire i wav in MP3 ma bensì di poter ascoltare MP3 e basta. Quindi non permette l'MP3 Encoding.

Per fare in modo che Java permetta l'MP3 encoding, Tritonus (http://www.tritonus.org/) mette a disposizione una libreria che, attraverso l'encoder Lame (http://lame.sourceforge.net/), permette l'MP3 encoding.
Quando si scarica questa libreria (download qui (http://www.tritonus.org/tritonus-mp3enc-2001-04-25.zip)), nel file zip è contenuto un readme (molto ben spiegato, in inglese) e un programma d'esempio chiamato Mp3Encoder.java
Dopo averlo compilato, questo programma, secondo il readme, permette di convertire un wav in mp3 attraverso il comando "java Mp3Encoder <file>.wav". E fin qui tutto ok, funziona perfettamente.
Il problema è che l'mp3 che mi dà è Mpeg 1 Layer 3, mentre io l'avrei bisogno Mpeg 2 Layer 3!
E non è cosi come sembra, non basta modificare la riga

private static final AudioFormat.Encoding MPEG1L3 = Encodings.getEncoding("MPEG1L3");
con
private static final AudioFormat.Encoding MPEG1L3 = Encodings.getEncoding("MPEG2L3");

perchè il programma darà l'errore "Unsupported conversion". Eppure secondo la documentazione di Lame si dovrebbe riuscire a convertirlo in Mpeg 2 Layer 3! Dov'è il problema??

Grazie, sato

satoshi2005
31-03-2006, 12:16
up..