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.
java mp3 jid3lib jframe jfilechooser id3v1 i
Commentami!