有人可以向我解释这个 Chunk Size 值吗

Can someone explain to me this Chunk Size value

所以我有一个包含 110528 字节的 wave 文件,我将这个 wave 文件转换为 hex :

byte[] myWaveFile = System.IO.File.ReadAllBytes(Server.MapPath("/") + "/Funny.wav");
string myHexFile = ToHex(myWaveFile, 0, myWaveFile.Length);

// myHexFile = "52494646B8AF0100......";

wave 文件的第一部分是 Chunk ID,即:"52494646" = "RIFF" 但我的第二部分是 "B8AF0100" ,它基本上是以字节为单位的块大小。

这个值"B8AF0100"如何等于wave文件的大小?我将此值转换为整数,它给我:3098476800,与 110528 无关!

来自linked page

The default byte ordering assumed for WAVE data files is little-endian. Files written using the big-endian byte ordering scheme have the identifier RIFX instead of RIFF.

组成块大小的四个字节是B8AF0100。由于您的文件具有标识符 RIFF 它是小端。这意味着最低有效字节在前。因此,块大小不是 B8AF0100(十六进制),而是 0001AFB8。计算结果为 110520,比文件大小小 8 个字节。