我正在制作一个MP3播放器。我正在使用 Java mp3 id3 tag library。我知道专辑图片被编码为ID3v2标签。
我可以访问mp3文件的ID3v2标签但是我无法获取艺术品! AbstractID3v2类中的所有方法都没有 API似乎找回了一张照片。
如何使用此库?
答案 0 :(得分:24)
我最后使用了另一个库,我使用了mp3agic
这是一个很棒的图书馆,易于使用。这是我用来获取专辑图片的示例代码
Mp3File song = new Mp3File(filename);
if (song.hasId3v2Tag()){
ID3v2 id3v2tag = song.getId3v2Tag();
byte[] imageData = id3v2tag.getAlbumImage();
//converting the bytes to an image
BufferedImage img = ImageIO.read(new ByteArrayInputStream(imageData));
}
答案 1 :(得分:2)
还有Jaudiotagger可以读/写Mp3,Mp4(Mp4音频,M4a和M4p音频)Ogg Vorbis,Flac和Wma +其他一些(专辑艺术)。
MP3File f = (Mp3File)AudioFileIO.read(testFile);
List<Artwork> artworkList;
if (f.hasID3v1Tag()) {
ID3v1Tag v1tag = f.getID3v1Tag();
artworkList = (List<Artwork>) v1tag.getArtworkList();
/* ... */
}
答案 2 :(得分:0)
您可以使用mp3agic来做到这一点,这是另一种方式!
在此处获取Jar:https://jar-download.com/artifacts/com.mpatric/mp3agic/0.9.0/source-code
Mp3File mp3file = new Mp3File("SomeMp3File.mp3");
if (mp3file.hasId3v2Tag()) {
ID3v2 id3v2Tag = mp3file.getId3v2Tag();
byte[] imageData = id3v2Tag.getAlbumImage();
}
if (imageData != null) {
String mimeType = id3v2Tag.getAlbumImageMimeType();
RandomAccessFile file = new RandomAccessFile("album-artwork", "rw");
file.write(data);
file.close();
}