2010-01-11 4 views

Répondre

3

Pour convertir un fichier MP3 à un fichier de débit inférieur, vous devez décoder et ré-encoder le fichier, vous devez disposer d'un décodeur MP3 et un encodeur MP3.

Vous devrez trouver une bibliothèque Java pour désinstaller/encoder MP3. Une option serait LameOnJ. C'est un wrapper pour l'encodeur MP3 "lame", et utilise un binaire/DLL spécifique à la plate-forme.

Il pourrait aussi y avoir une solution Java pure, mais je n'en connais aucune.

Voir aussi MP3 Encoding in Java

+0

ne peux pas utiliser JLayer pour encoder et décoder ....? – veenit33

+0

Sûr semble que vous pouvez, avez-vous essayé? –

1

Décodage MP3 est simple. Cependant, l'encodage MP3 est lourd de brevets, de licences et de chaos juridique général. LAME est une possibilité d'adaptation, mais elle souffre également d'éventuelles charges juridiques. C'est également known to be poor at lower bit rates. Il est écrit en C, donc vous devriez faire la traduction.

+0

Vous pouvez utiliser Java Native Access (JNA). C'est un moyen assez simple d'accéder aux bibliothèques C à partir de Java. Et par "assez facile", je veux dire que vous venez d'écrire une interface et d'inclure le fichier jna.jar. –

+0

@Greg: En fait, LameOnJ (voir ma réponse) est précisément un wrapper Java pour la bibliothèque "lame", donc pas besoin d'utiliser directement JNA (bien que ce soit possible). – sleske

+0

C'est une erreur commune de croire que l'encodage MP3 est "simple". Les droits de licence sont dus au consortium de brevets pour les décodeurs et les encodeurs. Les tarifs de base commencent à 0,75 $ US pour un décodeur logiciel et à 2,50 $ US pour un encodeur (licence de décodeur incluse). – jarnbjo

1

JLayer décode uniquement. Il n'y a pas de solution 100% Java pour l'encodage. LAME est officiellement distribué dans le code source, donc si vous voulez éviter une violation de brevet, vous ne pouvez pas distribuer les binaires LAME avec votre programme sans acheter une licence.