我有自己的基于 python 的 MP3 文件组织,我遇到的问题之一是概念专辑,其中单个(长)曲目有多个子部分。似乎有2个选择:
有没有一种方法可以在文件中嵌入元数据,以便播放器显示当前部分的标题,并在适当的点更改它的中间文件?
对于 ID3v2.3 和 v2.4 都针对这种情况进行了添加:
ID3 章节框架附录
ID3 章节 (CHAP) 和目录 (CTOC) 框架是为了应对包含多个不同音频节目的音频文件的增长而开发的。播客是单个音频文件的示例,它可能包含多个曲目、故事或其他不同的音频条目。将 CHAP 和 CTOC 帧添加到 ID3 标签将为兼容播放器提供音频文件的索引信息。
章节框架附录1.0版于2005年12月2日发布。CTOC和CHAP框架与ID3v2.3和ID3v2.4标签兼容。
这意味着 ID3v2 标签包含(在您的情况下)2 个
CHAP
框架,并且每个框架嵌入一个 TIT2
框架:
然而我却毫无头绪
这很可能只存在于纸面上,而没有引起世界的太多关注。但是,正如您所看到的,这是完全可能的。
您可以通过同步歌词间接实现这一点:
SYLT
框架应该得到播放器的更好支持 - 文档甚至认为这一点具有独特的内容类型值:
$03
是动作/部件名称(例如“Adagio”)
原生元数据格式是VorbisComment - 为此还有一个章节扩展提案,其目标是非常简单的语法。由于 VorbisComment 本身只是文本,您可以自己轻松实现这一点(看看哪个玩家可以理解它):
包含两个连续章节的示例章节文件:
CHAPTER001=00:00:00.000 CHAPTER001NAME=Chapter 1 CHAPTER002=00:05:00.000 CHAPTER002NAME=Chapter 2
也许对于这个标记对象很有用(GUID
{F487CD01-A951-11CF-8EE6-00C00C205365}
)。祝您好运,找到一个能够为您和关心这些元数据的玩家精确设置这些元数据的程序。 Windows Media 过于专有,并且在元数据方面相当笨拙 - 避免使用它。