目前我正在使用TagLib Sharp,正如@stackoverflow 中的一篇文章所建议的那样,用于从mp3、flac、ogg 和类似的多媒体文件中读取id3-Tag .. 现在我才意识到,id3v2(甚至可能是v1)支持自定义标签,但是我在 TagLib Sharp 中找不到读取/写入自定义标签的实现。有人知道支持自定义字段的库吗?
基督教
--- 更新 20100422 ---
仍在搜索..找到此页面:
目前我正在使用TagLib Sharp,正如@stackoverflow 中的一篇文章所建议的那样,用于从mp3、flac、ogg 和类似的多媒体文件中读取id3-Tag .. 现在我才意识到,id3v2(甚至可能是v1)支持自定义标签,但是我在 TagLib Sharp 中找不到读取/写入自定义标签的实现。有人知道支持自定义字段的库吗?
基督教
--- 更新 20100422 ---
仍在搜索..找到此页面:
您可以尝试添加一个新框架(而不是全新的自定义标签)。例如,如果您想将新的“Acoustid Duration”TXXX-Frame 添加到现有的 *.mp3 文件中,您可以使用taglib-sharp 库和类似的东西
Dim MyTaglibMP3 As TagLib.File = TagLib.File.Create("C:\temp\I'm Alive.mp3")
Dim id3v2tag As TagLib.Id3v2.Tag = CType(MyTaglibMP3.GetTag(TagLib.TagTypes.Id3v2), TagLib.Id3v2.Tag)
Dim AcoustidDurationTXXXFrame As New TagLib.Id3v2.UserTextInformationFrame("Acoustid Duration", TagLib.StringType.UTF16)
AcoustidDurationTXXXFrame.Text = {"207"}
id3v2tag.AddFrame(AcoustidDurationTXXXFrame)
...
MyTaglibMP3.Save()
MyTaglibMP3.Dispose()
当然,这适用于所有其他已定义的 id3v2 类型,如“CommentsFrame”、“PrivateFrame”、“TextInformationFrame”甚至“UnsynchronisedLyricsFrame”。
如果您不希望 id3v2tag 使用 UTF-16 编码,请选择另一个 TagLib.StringType
这篇关于 codeproject 的文章有一个支持任何类型标签(包括自定义标签)的库。我很久以前就使用过它,但我记得它支持自定义标签。但我认为 TagLib 更健壮。
你试过用 csid3lib 来做吗?