なんか期待したデータが取得できなかったのであきらめてサンプルコードをメモがてら残すのみ。

ライブラリには Java ID3 Tag Library の beta-dev6 (jid3lib-0.5.4.jar) を利用。

This library reads song information, such as song title, artist, and album, from an MP3 file. It supports ID3v1, ID3v1.1, Lyrics3v1, Lyrics3v2, ID3v2.2, ID3v2.3, and ID3v2.4 tags. MP3 Frame Headers can also be read. There is a FilenameTag, a ID3v2.4 tag that is intelligently derived from the file name. It contains tag synchronization utilities, multiple save options, and easy tag conversion methods. more ...

Java ID3 Tag Library

import java.io.*;
import java.util.*;
import org.farng.mp3.*;
import org.farng.mp3.id3.*;
import org.farng.mp3.lyrics3.*;
 
public class ID3TagSample {
 
  public static void main(String[] args) throws Exception {
    String[] mp3files = {
      "C:\\mp3id3\\03 AWAYOKUBA-斬る.mp3",
      "C:\\mp3id3\\06 Bulgarian Melody.mp3",
    };
    for(String file : mp3files){
      print(new File(file));
    }
  }
 
  private static void print(File file) throws Exception {
    MP3File mp3file = new MP3File(file);
    AbstractMP3Tag mp3tag = null;
    if(mp3file.hasID3v1Tag()){
      ID3v1 id3v1 = mp3file.getID3v1Tag();
      mp3tag = id3v1;
    }else if(mp3file.hasID3v2Tag()){
      AbstractID3v2 id3v2 = mp3file.getID3v2Tag();
      System.out.println("Class: " + id3v2.getClass());
      Collection c = id3v2.values();
      Iterator it = c.iterator();
      while(it.hasNext()){
        ID3v2_2Frame frame = (ID3v2_2Frame)it.next();
        System.out.println("Identifier: " + frame.getIdentifier());
        AbstractMP3FragmentBody body = frame.getBody();
        System.out.println("BriefDescription: " + body.getBriefDescription());
        System.out.println("Description: " + body.getDescription());
      }
      mp3tag = id3v2;
    }else if(mp3file.hasLyrics3Tag()){
      AbstractLyrics3 lyrics3 = mp3file.getLyrics3Tag();
      mp3tag = lyrics3;
    }
    System.out.println("Class: " + mp3tag.getClass());
    System.out.println("AlbumTitle: " + mp3tag.getAlbumTitle());
    System.out.println("AuthorComposer: " + mp3tag.getAuthorComposer());
    System.out.println("Identifier: " + mp3tag.getIdentifier());
    System.out.println("LeadArtist: " + mp3tag.getLeadArtist());
    System.out.println("Size: " + mp3tag.getSize());
    System.out.println("SongComment: " + mp3tag.getSongComment());
    System.out.println("SongGenre: " + mp3tag.getSongGenre());
    System.out.println("SongLyric: " + mp3tag.getSongLyric());
    System.out.println("SongTitle: " + mp3tag.getSongTitle());
    System.out.println("TrackNumberOnAlbum: " + mp3tag.getTrackNumberOnAlbum());
    System.out.println("YearReleased: " + mp3tag.getYearReleased());
    //System.out.println(mp3tag.toString());
  }
}

実行結果。


Class: class org.farng.mp3.id3.ID3v2_2
Identifier: TEN
BriefDescription: 
Description: 
Identifier: SMP
BriefDescription: 
Description: 
Identifier: TCM
BriefDescription: 
Description: 
Identifier: TT2
BriefDescription: 
Description: 
Identifier: TP1
BriefDescription: 
Description: 
Identifier: TRK
BriefDescription: 
Description: 
Identifier: TAL
BriefDescription: 
Description: 
Identifier: COM
BriefDescription: 
Description: 
Identifier: TCO
BriefDescription: 
Description: 
Identifier: TPA
BriefDescription: 
Description: 
Identifier: TYE
BriefDescription: 
Description: 
Class: class org.farng.mp3.id3.ID3v2_2
AlbumTitle: 
AuthorComposer: 
Identifier: ID3v2_2.20
LeadArtist: 
Size: 4325702
SongComment: 
SongGenre: 
SongLyric: 
SongTitle: 
TrackNumberOnAlbum: 
YearReleased: 
Class: class org.farng.mp3.id3.ID3v2_2
Identifier: TEN
BriefDescription: 
Description: 
Identifier: SMP
BriefDescription: 
Description: 
Identifier: TCM
BriefDescription: 
Description: 
Identifier: TT2
BriefDescription: 
Description: 
Identifier: TP1
BriefDescription: 
Description: 
Identifier: TRK
BriefDescription: 
Description: 
Identifier: TAL
BriefDescription: 
Description: 
Identifier: COM
BriefDescription: 
Description: 
Identifier: TCO
BriefDescription: 
Description: 
Identifier: TPA
BriefDescription: 
Description: 
Identifier: TYE
BriefDescription: 
Description: 
Class: class org.farng.mp3.id3.ID3v2_2
AlbumTitle: 
AuthorComposer: 
Identifier: ID3v2_2.20
LeadArtist: 
Size: 4325725
SongComment: 
SongGenre: 
SongLyric: 
SongTitle: 
TrackNumberOnAlbum: 
YearReleased: 

Identifier と Size しか取得できてない。。。

Ref.

tags: java mp3

Posted by NI-Lab. (@nilab)