TagLib:如何在设置 TDRC 时禁用创建 TDAT TIME TYER 标签

TagLib: How to disable creating TDAT TIME TYER tags when setting TDRC

我正在尝试使用 TagLib# 对我的 MP3 中的一些标签进行排序,因为我的汽车音响有一些标签内容的问题(与显示无关)。当然,我只想对标签进行排序,而不是生成新标签或替换现有标签。在理想情况下,只应更改 mp3 文件中的标签顺序,因此文件大小不会改变。

不幸的是,我无法找到一种方法来移动 TDRC 标签(记录日期的新定义):一旦我设置它,TagLib 决定做一些兼容性并生成 TYER a 和 TDAT 标签,如果时间是也出现在 TDRC 中,然后它也会生成 TIME 标签。

有没有办法在设置 TDRC 时禁用这些标签的自动生成?我试过将 TDRC 复制为 TextInformationFrame,但没有成功。

我正在使用最新的 TagLib,并处理带有 id3v2.3 标签的 MP3 文件。

您添加了使用 Id3v2.3 和 UTF16 的信息。

TDRC 官方仅适用于 id3v2.4。如果你将它与 id3v2.3 一起使用,你会在官方标准之外创建一个标签。

id3.org 表示 id3v2.4:

TDAT - Date / TIME - Time / TYER - Year
This frame is replaced by the TDRC frame, 'Recording time' [F:4.2.5]

TDRC
The 'Recording time' frame contains a timestamp describing when the audio was recorded. Timestamp format is described in the ID3v2 structure document [ID3v2-strct].


The timestamp fields are based on a subset of ISO 8601. When being as precise as possible the format of a time string is yyyy-MM-ddTHH:mm:ss (year, "-", month, "-", day, "T", hour (out of 24), ":", minutes, ":", seconds), but the precision may be reduced by removing as many time indicators as wanted.
Hence valid timestamps are:
yyyy, yyyy-MM, yyyy-MM-dd, yyyy-MM-ddTHH, yyyy-MM-ddTHH:mm and yyyy-MM-ddTHH:mm:ss. All time stamps are UTC. For durations, use the slash character as described in 8601, and for multiple non- contiguous dates, use multiple strings, if allowed by the frame definition.