Leggere i tag MP3 con Java

Mattepuffo's logo
Leggere i tag MP3 con Java

Leggere i tag MP3 con Java

In giro si trovano varie librerie per leggere i tag dei file MP3 con java.

Tra le tante ho scelto questa: Jid3lib.

Prima di tutto considerate che esistono varie versioni di tag.

Qui potete una descrizione.

A questo punto partiamo; scaricate la libreria e aggiungetela al vostro progetto.

Quello di cui abbiamo bisogno è uno o più files da scansionare.

Se ad esempio volete scegliere il tutto tramite JFileChooser:

public class Main {

    private static File[] arrayFiles;

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                JFileChooser fc = new JFileChooser(System.getProperty("user.home"));
                FileFilter mp3Filter = new FileNameExtensionFilter("MP3", "mp3");
                fc.setFileFilter(mp3Filter);
                fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
                fc.setMultiSelectionEnabled(true);
                int returnVal = fc.showOpenDialog(fc);
                if (returnVal == JFileChooser.APPROVE_OPTION) {
                    arrayFiles = fc.getSelectedFiles();
                }
                FrameList fl = new FrameList(arrayFiles);
                fl.setVisible(true);
            }
        });
    }
}


Dove FrameList è uno JFrame con dentro una JTextArea o un componente affine.

Al JFrame gli passiamo un array di File che scansioniamo.

Dentro al JFrame possiamo avere un metodo che scansiona il tutto e poi salva i dati.

Ad esempio nell'evento WindowOpened richiamiamo questo metodo qua:

private void listDir(File[] files) throws IOException, TagException, BadLocationException {
        StringBuilder sb = new StringBuilder();
        for (File file : files) {
            sb.append(file.getName()).append(" --- "); // AGGIUNGIAMO IL NOME DEL FILE
            MP3File mp3File = new MP3File(file);
            if (mp3File.hasID3v1Tag()) { // AGGIUNGO GLI ATTRIBUTI
                ID3v1 l31 = mp3File.getID3v1Tag();
                sb.append(l31.getArtist()).append("\n");
            } else {
                AbstractID3v2 l32 = mp3File.getID3v2Tag();
                sb.append(l32.getAlbumTitle()).append("\n");
            }
            txtResult.setText(sb.toString());
        }
    }


Dove txtResult è una JTextArea.

Nel ciclo recuperiamo il nome del file con il semplice metodo getName (della classe File).

Poi controlliamo il tipo di tag a disposizione.

A questoo punto prendo altre informazioni come l'artista, l'album e così via.....

Il tutto dentro a uno StringBuilder con il quale riempio la JTextArea.

Controllate il sito della libreria per avere più info circa i vari tipi di oggetti e di metodi a disposizione.


Condividi

Commentami!