2

我在 JAVA 中使用音频导入器(用于鼓音序器),在导入 AIFF 文件时遇到以下问题:

我有 2 个相同类型的 AIFF 文件(24 位、44100kHz、单声道),一个是在 Mac 上创建的,另一个是在 windows 计算机上使用 wavelab 创建的。两个文件都是未压缩的 PCM,都是 FORM == AIFF。

Mac 的 AIFF 是 BigEndian(应该是),Wavelab(Windows)的 AIFF 是 LittleEndian。

这两个文件都可以在 Wavelab (Windows) 和 Quicktime (Windows) 中正确播放。这些工具如何检测这些文件的字节顺序?无论如何它必须是可能的,否则至少其中一个文件听起来就像噪音(这就是我的应用程序中发生的事情)。

文件头中是否有一些隐藏信息或任何其他方式来确定 AIFF 文件的字节顺序?有什么建议么?

非常感谢

4

1 回答 1

3

快速谷歌搜索说,AIFF 文件是big endian

然而,根据维基百科,还有另一种名为 AIFF-C 的格式可以压缩数据。Apple 现在使用 little endian,并创建了一种名为sowt的虚假压缩方法,其本质上意味着“不压缩,但使用 little endian”。你可能需要检查一下。

除此之外,普通的 AIFF 无法检查字节顺序。以 little endian 编码的标准 AIFF 似乎违反了规范。

于 2011-09-09T08:55:09.307 回答