APEv1 标签标识符是啥?

Posted

技术标签:

【中文标题】APEv1 标签标识符是啥?【英文标题】:What is the APEv1 tag identifier?APEv1 标签标识符是什么? 【发布时间】:2017-04-30 22:27:57 【问题描述】:

我一直在清理我的 MP3 收藏,并使用 taglib-sharp 从我的收藏中大量删除了所有 ID3v1.x/ID3v2.x 标签,因此我可以使用一个程序自动重新标记它们。无论如何,如果文件中有任何 APEv1 和 APEv2 标签,我需要能够删除它们。它们很少与 MP3 一起使用,但可以。

我需要知道 APEv1 的标签标识符是什么,它位于文件的末尾。我在网上搜索过,一无所获。

附带说明,对于 APEv2,标签标识符是“APETAGEX”,位于文件的开头。

谢谢。

【问题讨论】:

en.m.wikipedia.org/wiki/APE_tag 【参考方案1】:

根据APEv1 spec,APEv1 和 APEv2 之间的唯一区别是 APEv1 没有标头,因此必须始终位于文件末尾或紧接在 ID3v1 标记之前。

页脚/页眉长度为 32 个字节,以 APETAGEX 开头,因此检查文件末尾是否存在 APE 标记将涉及读取 Length - 32 处的 8 个字节并检查该 ASCII 字符串,或者Length - 32 - 128 如果有 ID3v1 标签(或者如果文件中有页脚 APEv2 和 ID3v2 标签,则位置完全不同,因为在这种情况下确实没有严格的先例)。

也就是说,taglib-sharp 应该能够使用file.RemoveTags(TagTypes.Ape) 删除页脚 APEv1 标签

【讨论】:

感谢您解决这个问题。我以为 taglib 会处理它,但我不完全确定。感谢您提供的重要信息。 +1 @NeilSiegfried 如果这对您有用,您可以投票/接受答案吗?【参考方案2】:

根据APE tag - Wikipedia 没有实际的标签,但是数据被附加到文件的末尾。

APEv1

APEv1 标签是为 Monkey's Audio 设计的 格式。[2]在 MP3 文件中,APE 标签存储在文件的最后 文件,文件正文中没有内联声明。该软件 处理对标签的写入和访问,并且不干扰 MP3 的内容。

【讨论】:

以上是关于APEv1 标签标识符是啥?的主要内容,如果未能解决你的问题,请参考以下文章

能够唯一标识某一控件的属性的是啥

在php中定界符是啥?

java中的数组元素标识符是啥?

DOM 元素/节点的唯一标识符是啥

是啥导致“使用未解析的标识符 ParseClientConfiguration”?

这是我在下面给出的代码。预期标识符的解决方案是啥