我在JAVA中使用音频导入器(用于鼓音序器),导入AIFF文件时出现以下问题:
我有2个相同类型的AIFF文件(24bit,44100kHz,单声道),一个是在Mac上创建的,另一个是在Windows计算机上用wavelab创建的。这两个文件都是未压缩的PCM,都是FORM == AIFF。
来自Mac的AIFF是BigEndian(应该如此), Wavelab(Windows)的AIFF是LittleEndian。
这两个文件都可以在Wavelab(Windows)和Quicktime(Windows)中正确播放。 这些工具如何检测这些文件的字节顺序?无论如何它必须是可能的,否则至少有一个文件听起来就像是噪音(这就是我的应用程序中发生的事情)。
文件头中是否有一些隐藏信息或任何其他方式来确定AIFF文件的字节顺序? 有什么建议吗?
非常感谢
答案 0 :(得分:3)
快速搜索广告说,AIFF文件为big endian。
然而根据Wikipedia,有另一种称为AIFF-C的格式压缩数据。 Apple最近使用little endian并创建了一个名为 sowt 的假压缩方法,其实质上意味着“没有压缩但只有小端”。你可能需要检查一下。
除此之外,普通AIFF无法检查字节顺序。以小端编码的标准AIFF似乎违反了规范。