【问题标题】:Exists any risk of corruption when deleting ID3v1 + ID3v2 tags in a music file?删除音乐文件中的 ID3v1 + ID3v2 标签时是否存在损坏风险?
【发布时间】:2013-10-12 01:04:40
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 好吧,我不确定破坏文件有多么容易,但有post 介绍了如何(手动)去除标签。如果你想使用库,总是有TagLib-Sharppost 介绍如何使用库来删除标签。
  • @Sam 非常感谢,我会尝试使用 lib,因为它看起来更专业,风险更小

标签: c# .net vb.net id3 id3-tag


【解决方案1】:

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

第二个答案:只要您使用知名的 ID3 库,损坏音乐文件的风险非常低。但是(与往常一样,对于每个软件)它不是零。因此,我建议使用您之前备份的 *.mp3 文件测试您自己的应用程序。

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

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

【讨论】:

    【解决方案2】:

    好吧,我不确定在删除标签时破坏 mp3 文件有多么容易,但是有一个 post 关于如何手动删除标签(在代码中)。

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

    使用RemoveTags() 方法。

    file.RemoveTags(tagtypes);

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

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

    取自this post

    【讨论】:

    • 只是为人们提供的附加信息:我已经测试了速度,TagLib-Sharp 可以在 05:40 分钟内删除 1.000 个文件的 id3v1 + id3v2 标签,ultraid3lib 可以在 03:11 分钟内完成相同的操作, TagLib-Sharp 可能是最好的,但也比其他的慢。
    猜你喜欢
    • 2015-08-05
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    相关资源
    最近更新 更多