RIFF WAV文件中格式参数的字节顺序是否有保证?我对此有heard conflicting answers,包括对RIFX文件格式的引用。
答案 0 :(得分:18)
是
如果文件以RIFF开头,则它是小端。 如果它以FFIR或RIFX开头,则可能不是。 通常,支持WAV格式意味着支持RIFF文件,尽管添加RIFX支持并不难。
BWF(广播波形格式)的AES31规范引用了RIFF的此规范:http://www.tactilemedia.com/info/MCI_Control_Info.html
由此:
RIFF有一个对应的RIFX,即 用于定义RIFF文件格式 使用Motorola整数字节排序 格式而不是英特尔格式。一个 RIFX文件与RIFF文件相同, 除了前四个字节是 'RIFX'而不是'RIFF',和整数 字节排序用。表示 摩托罗拉格式。
您引用的KVR文章指的是作者在big-endian系统(Motorola PPC)上对int *的错误使用,它将检索字节交换的值。在编写跨端代码时,始终需要小心处理字节交换。
如果磁盘上文件的第0个字节为'R',而第3个为'F',则可以确定其余内容将以little endian存储。
RIFX并未广泛使用。大多数big-endian RIFF实现将字节交换到磁盘,并生成正确的RIFF文件。