如何从id3中删除Lyrics3 v2标签?

时间:2014-10-31 09:24:43

标签: vb.net id3 taglib-sharp

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

1 个答案:

答案 0 :(得分:3)

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

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

  1. 打开文件流。
  2. 寻找长度 - 9,读取9个字节,看它们是否等于LYRICS200LYRICSEND。如果没有,请关闭该文件。
  3. 追回11个字节。
  4. 读取11个字节并检查它们是否与LYRICSBEGIN匹配。如果是这样,请在此时截断文件。
  5. 如果没有,请继续寻找1字节并重复步骤4.大概在10KB左右后放弃。
  6. 这不是最有效的策略,但我想象这些标签的文件数量非常少,所以大多数应该在第2步之后停止。