2017-06-23 2 views
0

J'utilise MP3SPI pour lire des fichiers MP3 dans mon application Java. Cela fonctionne très bien pour commencer et arrêter de jouer. Cependant, je voudrais être en mesure d'imprimer des étiquettes ID3 à partir des fichiers MP3.Analyser les balises ID3 à partir du fichier MP3 en utilisant MP3SPI

J'ai essayé le code suivant:

URL fileUrl = new File("song.mp3").toURI().toURL(); 

AudioFileFormat audioFileFormat = new MpegAudioFileReader().getAudioFileFormat(fileUrl); 
Map<String, Object> properties = audioFileFormat.properties(); 
for (Entry<String, Object> entry : properties.entrySet()) 
{ 
    System.out.println(entry.getKey() + " = " + entry.getValue()); 
} 

Ce code lit les propriétés du fichier audio et imprime les clés et les valeurs de chacun. Cela fonctionne avec tout sauf les tags ID3. J'ai vérifié que chanson.mp3 a vraiment des étiquettes ID3. L'exécution du code ci-dessus donne le résultat suivant:

mp3.copyright = false 
mp3.framesize.bytes = 1041 
mp3.vbr = false 
mp3.frequency.hz = 44100 
mp3.framerate.fps = 38.28125 
mp3.id3tag.v2 = [email protected] 
mp3.channels = 2 
mp3.vbr.scale = 0 
mp3.version.encoding = MPEG1L3 
mp3.bitrate.nominal.bps = 320000 
mp3.version.layer = 3 
mp3.id3tag.v2.version = 2 
mp3.padding = true 
mp3.id3tag.encoded = iTunes 10.6.1 
mp3.header.pos = 2147 
comment = TunNORM 
mp3.version.mpeg = 1 
mp3.mode = 0 
mp3.crc = false 
mp3.original = false 

Selon la documentation de MP3SPI et diverses réponses ici sur Stack Overflow, il devrait également y avoir des propriétés comme genre et artiste. J'ai l'impression qu'il y a quelque chose de majeur que je n'ai pas compris, et je n'arrive pas à comprendre ce que je fais de mal. Ayant mp3.id3tag.v2 un ByteArrayInputReader semble un peu étrange pour moi, et je ne peux pas comprendre ce que cela implique. Aussi, je me suis demandé si le fait que les tags ID3 semblent avoir été encodés avec iTunes (en regardant mp3.id3tag.encoded) a quelque chose à voir avec l'absence de sortie de tag ID3.

Répondre

2

Pour lire correctement les étiquettes ID3, utilisez une bibliothèque telle que JAudiotagger.