Доступ к текстам песен через mp3agic

Я не очень хорош в Java. Я делаю проект, который обновляет метаданные музыкальных файлов с использованием библиотеки mp3agic. Я не нахожу часть текста в библиотеке. Может ли кто-нибудь, кто хорош с тегами ID3, помочь мне получить доступ к текстам?

1 ответ

Я знаю, что это может быть слишком поздно, и OP, возможно, уже понял это, но если кто-то все еще застрял с этим, пожалуйста, посмотрите здесь

Установить текст в формате MP3 ID3v2 Tag

и попробуйте ниже

Отредактируйте AbstractID3v2Tag со следующими изменениями;

public static final String ID_TEXT_LYRICS = "USLT";

private ID3v2CommentFrameData extractLyricsFrameData(String id) {
        ID3v2FrameSet frameSet = frameSets.get(id);
        if (frameSet != null) {
            Iterator<ID3v2Frame> iterator = frameSet.getFrames().iterator();
            while (iterator.hasNext()) {
                ID3v2Frame frame = (ID3v2Frame) iterator.next();
                ID3v2CommentFrameData frameData;
                try {
                    frameData = new ID3v2CommentFrameData(useFrameUnsynchronisation(), frame.getData());
                    return frameData;
                } catch (InvalidDataException e) {
                    // Do nothing
                }
            }
        }
        return null;
    }

public String getLyrics() {
        ID3v2CommentFrameData frameData;
        if (obseleteFormat) return null;
        else frameData = extractLyricsFrameData(ID_TEXT_LYRICS);
        if (frameData != null)
            return frameData.getComment().toString();
        return null;
    }

public void setLyrics(String lyrics) {
        if (lyrics != null && lyrics.length() > 0) {
            invalidateDataLength();
            ID3v2CommentFrameData frameData = new ID3v2CommentFrameData(useFrameUnsynchronisation(), "eng", null, new EncodedText(lyrics));
            addFrame(createFrame(ID_TEXT_LYRICS, frameData.toBytes()), true);
        }
    }

После этого вы можете просто вызвать id3v2Tag.setLyrics() и id3v2tag.getLyrics(), похоже, это работает нормально. Убедитесь, что ascii кодирует текст вашего текста при использовании setLyrics().

Другие вопросы по тегам