Riprodurre mp3 in Java tramite JMF

La riproduzione di musica e video in Java avviene tramite delle API esterne incluse nel Java Media Framework (JMF). 
Purtroppo queste API esterne, per quanto riguarda la riproduzione audio, soffrono di una grave mancanza: non supportano il formato MP3.
Per compensare questa grave mancanza è stata da poco introdotta una libreria chiamata mp3plugin che però, al momento in cui scrivo, non risulta essere scaricabile dal sito ufficiale di Java a causa di un link non funzionante. Per tanto ho pensato che per chi ne avesse necessità può scaricare il file mp3plugin.jar da questo indirizzo.

Vediamo ora come importare queste librerie e come utilizzarle per un semplice riproduttore musicale.
  • Scaricare e scompattare il JMF e la libreria mp3plugin
  • Da Netbeans fare click destro sul progetto, selezionare proprietà e posizionarsi su librerie
  • Aggiungere tutti gli archivi jar estratti al primo passo al progetto tramite il tasto Aggiungi JAR/Cartella
Aggiunta di tutte le librerie al progetto corrente su NetBeans

Ora che le librerie sono state aggiunte al progetto, per testarne il funzionamento è possibile utilizzare il seguente codice:

//Import necessari al funzionamento del mediaplayer
import javax.media.bean.playerbean.MediaPlayer;
import javax.media.Format;
import javax.media.PlugInManager;
import javax.media.format.AudioFormat;

//Tramite questo metodo avvio la riproduzione di un file mp3
public void playMusic() {
        //percorso dove è situato il file mp3
        URL mp3URL="C:\Users\Lorenzo\NetBeans\AudioSample\musicFile.mp3";
        //Aggiungo al JMF il plugin per la riproduzione mp3
        PlugInManager.addPlugIn("com.sun.media.codec.audio.mp3.JavaDecoder",
            new Format[]{new AudioFormat(AudioFormat.MPEGLAYER3),new AudioFormat(AudioFormat.MPEG)},
            new Format[]{new AudioFormat(AudioFormat.LINEAR)},
            PlugInManager.CODEC);
       
         //Creo il MediaPlayer, gli fornisco la posizione dell'mp3 e avvio la riproduzione
         MediaPlayer playMP3=new MediaPlayer();
         playMP3.setMediaLocation(mp3URL.toString());
         playMP3.start();

    }

Commenti