1

我使用 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 标签?

4

1 回答 1

3

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

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

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

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

于 2014-11-05T20:59:55.037 回答