我正在尝试为音乐制作一种新的文件格式。它需要是一个实际存储多个音频文件的文件,例如 zip 文件。我正在寻找一种将 zip 文件转换为这种新文件格式的方法。但是,我仍然想在这些新文件中使用 id3 标签。我想知道如何制作这种新的文件格式,它是一个包含多个音频文件的文件,但仍然包含该文件的整体 id3 标签,以便我可以将其加载到我的移动应用程序中。任何帮助/建议将不胜感激。干杯,AJ
2 回答
创建自己的新文件格式的问题在于只有您可以使用它。除非您说服许多其他人这是一种有用的新格式,否则没有其他人将拥有能够对您创建的文件执行任何操作的工具。
为了使现有的音乐播放器程序能够处理新的文件格式,您必须以该播放器的插件样式为您的文件格式编写一个 CODEC。可能不止一个插件,因为您的文件格式既是音乐容器又是目录。
创建新文件格式的一种替代方法是将您拥有的 MP3 文件放入一个新的 MP3 文件中,每个旧文件在新文件中都有一个新的 TRACK。确保将每个新曲目的开始时间设置在所有先前曲目播放时长的总和之后,以免它们相互踩踏。将每个文件的元数据合并到新文件的元数据中。这可能适用于具有大量通用元数据的集合(如同一位艺术家),但如果元数据非常多样化,则可能效果不佳。
另一种选择是将它们转换为 CDA 格式,然后放入音频 CD 映像文件,就像您将它们刻录到 CD 一样。
第三种选择是将文件放入 SQLite 数据库文件中。每个 MP3 文件中的元数据都会填写记录,您可以选择将 MP3 文件保留在外部并仅链接到它,或者也将 MP3 文件的 blob 存储在数据库中。如果您确实存储了 blob,则 SQLite 数据库文件是一个包含您放入其中的所有内容的文件。
-杰西
不要创建新格式,除非您真的有充分的理由这样做。
它听起来像Matroska可以做任何你需要的事情。但与您自己的格式相比,您和其他开发人员将拥有一堆现成的工具来处理该格式。这包括编辑、玩家……此外,您可以将最初的工程错误留给其他人。
如果您真的想创建自己的格式:要么将支持 id3 标签的音频文件放入 zip 文件,要么在 zip 文件中创建一个元文件(例如 XML 格式),其中包含元信息你想被包括在内。