java - 是否可以(以及如何)确定 AIFF 音频文件的字节顺序?

标签 java audio endianness aiff

我在 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/

相关文章:

byte - 在此 MIPS 代码中,哪个字节是从内存中加载的?

java - AndEngine 中 SVG 超出 Sprite 范围

java - 如何在子类中访问父类的变量

javascript - 无法在if陈述式中定义声音

python - Endianness - 十六进制到十进制小端。数据类型不正确

c - 小端宏

java - https ://pubsubhubbub. appspot.com/subscribe 空响应

java - 用于发送消息而不是短信的 Intent 选择器

iphone - AVAssetExportSession在iPad上有效,在iPhone上无音频

.net - .NET 库可以处理哪些声音格式?