设置歌词MP3 ID3v2标签(Set Lyrics in MP3 ID3v2 Tag)

2019-07-30 22:27发布

我想写歌词在Android application.I的MP3已经找到了一个Java库,用于读取mp3文件和读/操纵ID3标签(ID3v1和ID3v2.2通过ID3v2.4),命名为mp3agic 。

我修改mp3agic写ID3v2标签的抒情标签,写标签: USLT 。 发现在维基百科

在样品Android应用我修改艺术家,专辑,标题,流派,歌词和注释的MP3的。 除了歌词所有的代码修改正确。 PowerAMP是用来验证修改后的MP3文件, PowerAMP无法找到的MP3歌词。

如果任何人都熟悉这个库下面是从AbstractID3v2Tag.java我修改后的代码:

//define lyric tag for id3v2
public static final String ID_TEXT_LYRICS = "USLT";

//get the lyrics from the tag
public String getLyrics() {
    ID3v2TextFrameData frameData;
    if (obseleteFormat) return null;
    else frameData = extractTextFrameData(ID_TEXT_LYRICS);
    if (frameData != null && frameData.getText() != null) 
        return frameData.getText().toString();
    return null;
}

//set the lyrics in the tag
public void setLyrics(String lyrics) {
    if (lyrics != null && lyrics.length() > 0) {
        invalidateDataLength();
        ID3v2TextFrameData frameData = new ID3v2TextFrameData(useFrameUnsynchronisation(), new EncodedText(lyrics));
        addFrame(createFrame(ID_TEXT_LYRICS, frameData.toBytes()), true);
    }
}

我设置的歌词MP3与Windows中的一个程序,读取USLT与我的应用程序和标签getLyrics()返回的字符串engPowerAMP没有发现这些歌词为Windows程序设置。

我已经搜查,发现很多帖子指向MP3 ID3标签修改库的,这就是我发现mp3agic。 这是唯一的图书馆,我可以很容易地修改纳入歌词的改变。

一个图书馆,我发现是MyID3_for_Android这并不需要修改歌词的方法。

我期待相关指导。

Answer 1:

看着在官方ID3规范http://id3.org/id3v2.4.0-frames :

Header for 'Unsynchronised lyrics/text transcription', ID: "USLT":
    Text encoding        $xx
    Language             $xx xx xx
    Content descriptor   (text string according to encoding) $00 (00)
    Lyrics/text          (full text string according to encoding)

因此,超声波检测帧不是只是一个文本框,这是你如何试图解析它。 相比之下,文本框看起来像这样:

Header for 'Text information frame', ID: "T000" - "TZZZ" excluding "TXXX":
    Text encoding                $xx
    Information                  (text string(s) according to encoding)

请注意,在超声波检测帧的额外字段。 你需要一个定制的框架类(比如,ID3v2LyricsFrameData)。

然而,USLT框架是非常相似的评论框(COMM),所以你也许可以重新使用一些这段代码。 也许创建一个超类ID3v2CommentFrameData和ID3v2LyricsFrameData都扩展。



文章来源: Set Lyrics in MP3 ID3v2 Tag