我想在 Android 应用程序中将歌词写入 mp3。我找到了一个用于读取的 java 库mp3
文件并读取/操作 ID3 标签(ID3v1 和 ID3v2.2 到 ID3v2.4),名为mp3agic https://github.com/mpatric/mp3agic.
我修改了mp3agic
写入ID3v2标签的歌词标签,写入标签:USLT
。在发现维基百科 http://en.wikipedia.org/wiki/ID3#ID3v2_Frame_Specification_.28Version_2.3.29
在示例 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()
返回了字符串eng
. PowerAMP
确实找到了 Windows 程序设置的这些歌词。
我搜索并发现了很多指向 MP3 ID3 标签修饰符库的帖子,这就是我找到 mp3agic 的地方。这是我可以轻松修改以合并歌词更改的唯一库。
我发现的一个图书馆是MyID3_for_Android https://sites.google.com/site/eternalsandbox/myid3-for-android没有修改歌词的方法。
我正在寻找这方面的指导。