Read Tag Info from a file
This page refers to all tag formats supported by Jaudioatgger. The stuff you might want to know but you can't change is stored in the AudioHeader class,
the meta information that you can change is stored in the Tag interface.
AudioFile f = AudioFileIO.read(testFile);
Tag tag = f.getTag();
AudioHeader = f.getAudioHeader();
AudioHeader includes
System.out.println(f.getAudioHeader().getTrackLength());
System.out.println(f.getAudioHeader().getSampleRateAsNumber());
For the very common fields that all audio formats support we've provided some convenience methods. Because some formats support multiple instances of fields these
convenience methods are named getFirst and all return a String.
System.out.println(tag.getFirstArtist());
System.out.println(tag.getFirstAlbum());
System.out.println(tag.getFirstTitle());
System.out.println(tag.getFirstComment());
System.out.println(tag.getFirstYear());
System.out.println(tag.getFirstTrack());
These fields and additional common fields are listed in the TagFieldKey Enumeration of common fields that can be used as follows
System.out.println(tag.getFirst(TagFieldKey.ARTIST);
System.out.println(tag.getFirst(TagFieldKey.ALBUM);
System.out.println(tag.getFirst(TagFieldKey.TITLE);
System.out.println(tag.getFirst(TagFieldKey.COMMENT);
System.out.println(tag.getFirst(TagFieldKey.YEAR);
System.out.println(tag.getFirst(TagFieldKey.TRACK);
System.out.println(tag.getFirst(TagFieldKey.DISC_NO);
System.out.println(tag.getFirst(TagFieldKey.COMPOSER);
System.out.println(tag.getFirst(TagFieldKey.ARTIST_SORT);
System.out.println(tag.getFirst(TagFieldKey.LYRICS);
System.out.println(tag.getFirst(TagFieldKey.BPM);
System.out.println(tag.getFirst(TagFieldKey.ALBUM_ARTIST);
System.out.println(tag.getFirst(TagFieldKey.ALBUM_ARTIST_SORT);
System.out.println(tag.getFirst(TagFieldKey.ALBUM_SORT);
System.out.println(tag.getFirst(TagFieldKey.GROUPING);
System.out.println(tag.getFirst(TagFieldKey.COMPOSER_SORT);
System.out.println(tag.getFirst(TagFieldKey.TITLE_SORT);
System.out.println(tag.getFirst(TagFieldKey.IS_COMPILATION);
The list includes all Musicbrainz fields
System.out.println(tag.getFirst(TagFieldKey.MUSICIP_ID);
System.out.println(tag.getFirst(TagFieldKey.MUSICBRAINZ_TRACK_ID);
System.out.println(tag.getFirst(TagFieldKey.MUSICBRAINZ_ARTISTID);
System.out.println(tag.getFirst(TagFieldKey.MUSICBRAINZ_RELEASEARTISTID);
System.out.println(tag.getFirst(TagFieldKey.MUSICBRAINZ_RELEASEID);
If the format supports supports multiple items with the same id you can retrieve all items with a particular id using
List list = tag.get(TagFieldKey.ARTIST);
for(TagField field:list)
{
System.out.println(field);
}
To retrieve all items in a tag use
Iterator iterator = tag.getFields();
while(iterator.hasNext())
{
System.out.println(iterator.next());
}
The examples above assume textual data, but what about binary data. You retrieve the complete tag field instead of just a String representation of its value
by using
TagField binaryField = tag.getFirstField(FieldKey.COVER_ART));
|