我正在制作一个 mp3 播放器。我正在使用Java mp3 id3 标记库。我知道专辑封面被编码为 ID3v2 标签。
我可以访问 mp3 文件的 ID3v2 标签,但是我无法获得艺术品!API中的 AbstractID3v2 类中的所有方法 似乎都没有检索图片。
如何使用这个库?
我正在制作一个 mp3 播放器。我正在使用Java mp3 id3 标记库。我知道专辑封面被编码为 ID3v2 标签。
我可以访问 mp3 文件的 ID3v2 标签,但是我无法获得艺术品!API中的 AbstractID3v2 类中的所有方法 似乎都没有检索图片。
如何使用这个库?
我最终使用了另一个库,我使用了 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));
}
还有可以读/写 Mp3、Mp4(Mp4 音频、M4a 和 M4p 音频)Ogg Vorbis、Flac 和 Wma 以及其他一些(专辑艺术)的 Jaudiotagger 。
MP3File f = (Mp3File)AudioFileIO.read(testFile);
List<Artwork> artworkList;
if (f.hasID3v1Tag()) {
ID3v1Tag v1tag = f.getID3v1Tag();
artworkList = (List<Artwork>) v1tag.getArtworkList();
/* ... */
}
您可以使用 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();
}