Search in sources :

Example 1 with AbstractID3v2Tag

use of org.jaudiotagger.tag.id3.AbstractID3v2Tag in project MusicDNA by harjot-oberai.

the class ID3Chunk method readChunk.

@Override
public boolean readChunk() throws IOException {
    // TODO Auto-generated method stub
    if (!isId3v2Tag()) {
        // Bad ID3V2 tag
        return false;
    }
    int version = raf.read();
    AbstractID3v2Tag id3Tag;
    switch(version) {
        case 2:
            id3Tag = new ID3v22Tag();
            AudioFile.logger.finest("Reading ID3V2.2 tag");
            break;
        case 3:
            id3Tag = new ID3v23Tag();
            AudioFile.logger.finest("Reading ID3V2.3 tag");
            break;
        case 4:
            id3Tag = new ID3v24Tag();
            AudioFile.logger.finest("Reading ID3V2.4 tag");
            break;
        default:
            // bad or unknown version    
            return false;
    }
    aiffTag.setID3Tag(id3Tag);
    // back up to start of tag
    raf.seek(raf.getFilePointer() - 4);
    byte[] buf = new byte[(int) bytesLeft];
    raf.read(buf);
    ByteBuffer bb = ByteBuffer.allocate((int) bytesLeft);
    bb.put(buf);
    try {
        id3Tag.read(bb);
    } catch (TagException e) {
        AudioFile.logger.info("Exception reading ID3 tag: " + e.getClass().getName() + ": " + e.getMessage());
        return false;
    }
    return true;
}
Also used : TagException(org.jaudiotagger.tag.TagException) AbstractID3v2Tag(org.jaudiotagger.tag.id3.AbstractID3v2Tag) ID3v22Tag(org.jaudiotagger.tag.id3.ID3v22Tag) ID3v24Tag(org.jaudiotagger.tag.id3.ID3v24Tag) ID3v23Tag(org.jaudiotagger.tag.id3.ID3v23Tag) ByteBuffer(java.nio.ByteBuffer)

Aggregations

ByteBuffer (java.nio.ByteBuffer)1 TagException (org.jaudiotagger.tag.TagException)1 AbstractID3v2Tag (org.jaudiotagger.tag.id3.AbstractID3v2Tag)1 ID3v22Tag (org.jaudiotagger.tag.id3.ID3v22Tag)1 ID3v23Tag (org.jaudiotagger.tag.id3.ID3v23Tag)1 ID3v24Tag (org.jaudiotagger.tag.id3.ID3v24Tag)1