我在 JAVA 中开发音频导入器(用于鼓音序器),并且在导入 AIFF 文件时遇到以下问题:
我有2个相同类型的AIFF文件(24位,44100kHz,单声道),一个是在Mac上创建的,另一个是在Windows计算机上使用wavelab创建的。两个文件都是未压缩的 PCM,都是 FORM == AIFF。
Mac 上的 AIFF 是 BigEndian(应该是这样), Wavelab (Windows) 的 AIFF 是 LittleEndian。
这两个文件都可以在 Wavelab (Windows) 和 Quicktime (Windows) 中正确播放。 这些工具如何检测这些文件的字节顺序?无论如何,它必须是可能的,否则至少有一个文件听起来就像噪音(这就是我的应用程序中发生的情况)。
文件头中是否存在一些隐藏信息或任何其他方式来确定 AIFF 文件的字节顺序? 有什么建议吗?
非常感谢
最佳答案
快速谷歌搜索显示,AIFF 文件是 big endian .
但是根据 Wikipedia还有另一种称为 AIFF-C 的数据压缩格式。苹果现在使用小端字节序,并创建了一种名为 sowt 的假压缩方法,其本质上意味着“没有压缩,但小端字节序”。您可能需要检查一下。
除此之外,普通 AIFF 无法提供检查字节顺序的方法。以小尾数法编码的标准 AIFF 似乎违反了规范。
关于java - 是否可以(以及如何)确定 AIFF 音频文件的字节顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7359180/