我在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无法检查字节序。以little endian编码的标准AIFF似乎违反了规范。

07-27 18:39