删除音乐文件中的 ID3v1 + ID3v2 标签时存在任何损坏风险

本文关键字:存在 任何 损坏 标签 ID3v2 文件 音乐 ID3v1 删除 | 更新日期: 2023-09-27 18:34:09

我一直使用第三方 CLI 应用程序来管理我的音乐收藏,现在我想自己管理我的收藏编码,我需要使用库做的所有事情......但我不是这个编程音乐方面的专家。

我需要一个 ID3

库(当然我想要最好的!(来删除(而不是写入(所有 mp3 文件的所有 ID3v1 和 ID3v2 标签,我看过id3lib,但它是针对c ++的,所以我决定尝试用于.NET的UltraId3Lib,该库是完全面向对象的,易于使用,并且看起来非常高效...但也似乎有点过时了:http://home.fuse.net/honnert/UltraID3Lib/

的第一个问题是我选择的库是否良好且高效,或者可能存在更好的 .NET ID3 库(并且易于使用,请记住我不是 mp3 标头之类的专家(。

我的第二个也是最重要的问题是,在尝试从文件中删除 id3v1+id3v2 标签时,我是否可以损坏/损坏 mp3 文件(我不是说人为错误(,如果是,那么哪些原因会损坏 mp3 音频数据? 或者也许我不必担心写入/删除 ID3 标签的"字节空间"?

。或者换句话说,问同样的问题:ID3v1/ID3v2标签可以损坏mp3文件?如果是,那为什么?在什么情况下?

删除音乐文件中的 ID3v1 + ID3v2 标签时存在任何损坏风险

第一个答案:我建议使用"TagLib-Sharp"作为.NET的ID3库

第二个答案: 只要您使用众所周知的ID3库,损坏音乐文件的风险就非常低。但是(一如既往,每个软件(它不是零。因此,我建议您使用以前备份过的 *.mp3 文件测试您自己的应用程序。

您还可能遇到以下情况:ID3标签已写入文件,不符合 ID3.org 的规范。那么损坏文件的风险会更高。在这种极少数情况下,您有三种选择:
a( 从备份
还原b(从原始来源(CD,LP,盒式
磁带(再次翻录它们c(从您的官方市场(亚马逊,iTunes等(再次下载。

按照 ID3

规范,ID3v1/ID3v2 标签保存在 mp3 文件的"音乐数据部分"之前或之后的第一个字节中。只要您只删除此开始/结束部分,就不会损坏您的歌曲部分。

好吧,我不确定删除标签时损坏mp3文件有多容易,但是有一篇关于如何手动去除标签(在代码中(的文章。

但是如果你想使用一个库,总是有TagLib-Sharp。

使用RemoveTags()方法。

file.RemoveTags(tagtypes);

其中tagtypes是要删除的标记的TagType位掩码。对于 Id3v1 和 Id3v2,请尝试,

file.RemoveTags(TagTypes.Id3v1 && TagTypes.Id3v2);

取自这篇文章。