【问题标题】:How to remove Lyrics3 v2 tag from id3?如何从 id3 中删除 Lyrics3 v2 标签?
【发布时间】:2014-10-31 09:24:43
【问题描述】:

我使用 taglib sharp 库通过命令从我的歌曲中删除所有标签

Track = TagLib.File.Create("C:\test\Super Trouper.mp3")
Track.RemoveTags(TagLib.TagTypes.AllTags)
Track.Save()
Track.Dispose()

不幸的是,.RemoveTags 没有删除 Lyrics3 v2.0 标签
(此处指定:http://id3.org/Lyrics3v2)。

这样的标签可以用“Mp3 Diags”(http://mp3diags.sourceforge.net/)之类的工具检测到

如何从歌曲中完全删除所有标签和所有帧?

或者我怎样才能删除这个特定的 Lyrics3 v2 标签?

【问题讨论】:

    标签: vb.net metadata id3 taglib-sharp


    【解决方案1】:

    很遗憾,TagLib# 不支持 Lyrics3 标签。在 MP3 文件中,TagLib# 将检测并只能删除 APE、Id3v1 和 Id3v2 标签。

    使用 TagLib# 删除的标签保存文件后,您可以使用自己的代码执行以下操作:

    1. 打开文件流。
    2. 寻找长度 - 9,读取 9 个字节,看看它们是否等于 LYRICS200LYRICSEND。如果没有,请关闭文件。
    3. 寻回 11 个字节。
    4. 读取 11 个字节并检查它们是否匹配 LYRICSBEGIN。如果是这样,请在此时截断文件。
    5. 如果没有,继续寻回 1 个字节并重复第 4 步。可能在 10KB 左右后放弃。

    这不是最有效的策略,但我想象带有这些标签的文件数量非常少,所以大多数应该在第 2 步之后停止。

    【讨论】:

    • 那行得通。谢谢你,布赖恩。你知道 TagLib# 是否会支持 Lyrics3 标签吗?最后一个官方版本 2.1.0 是 2 年前发布的,AFAIK。
    • 可能不会。该项目似乎是仅维护(充其量),如果它处于活动状态,那么 Lyrics3 标记仍然非常模糊,并且不适合其余的标记方案。 TagLib# 通过SynchronizedLyricsFrame 支持 ID3v2.3 同步歌词帧。但不确定其他地方的支持范围有多广。
    • 如果有人对解决方案感兴趣,请查看此答案:stackoverflow.com/questions/36963163/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 2012-02-27
    相关资源
    最近更新 更多