2013-02-06 37 views
16

Tôi đang tạo một trình phát mp3. Tôi đang sử dụng Java mp3 id3 tag library. Tôi hiểu rằng tác phẩm nghệ thuật của album được mã hóa dưới dạng thẻ ID3v2.Cách sử dụng Thư viện thẻ Java MP3 ID3 để truy xuất ảnh bìa album

Tôi có thể truy cập thẻ ID3v2 của tệp mp3 tuy nhiên tôi không thể tải ảnh nghệ thuật! Không có phương pháp nào trong lớp AbstractID3v2, trong API dường như truy xuất hình ảnh.

Làm cách nào để sử dụng thư viện này?

Trả lời

22

tôi đã kết thúc sử dụng thư viện khác, tôi sử dụng mp3agic

Đó là một thư viện lớn mà rất dễ sử dụng. Dưới đây là mẫu mã tôi đã sử dụng để có được những tác phẩm nghệ thuật album

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

Cảm ơn gợi ý này! – ollo

+0

Tôi không thể nhập thư viện đó. Tôi đã thử cả hai 'id3-1.6.0d9.jar' và' jid3lib-0.5.4.jar', nhưng không có 'Mp3File'. –

2

Ngoài ra còn có Jaudiotagger có khả năng đọc/ghi Mp3, Mp4 (audio MP4, M4A và M4P audio) Ogg Vorbis, FLAC và WMA + một số người khác (album art quá).

MP3File f = (Mp3File)AudioFileIO.read(testFile); 
List<Artwork> artworkList; 
if (f.hasID3v1Tag()) { 
    ID3v1Tag v1tag = f.getID3v1Tag(); 
    artworkList = (List<Artwork>) v1tag.getArtworkList(); 
    /* ... */ 
} 
+1

Tôi nghĩ rằng thư viện bị hỏng. Tôi nhận được: 'Không thể tìm thấy lớp 'sun.nio.ch.DirectBuffer', được tham chiếu từ phương thức org.jaudiotagger.audio.mp3.MP3File.readV2Tag' –

Các vấn đề liên quan