我正在我的跨平台应用程序框架中实现音频,并且在开始使用波形文件时遇到了一些麻烦。
UInt32 type = rd.ReadUInt32();
UInt32 size = rd.ReadUInt32();
UInt32 waveType = rd.ReadUInt32();
UInt32 fmtType = rd.ReadUInt32();
if (type != MAGIC_RIFF || waveType != MAGIC_WAVE || fmtType != MAGIC_fmt)
{
throw new InvalidDataException("Data is not of WAVE format");
}
“fmt”幻数不正确,它实际上是0x4b4e554a。Windows-Media-Player 可以轻松播放文件,但我没有找到任何信息这个块可能是什么。根据定义,“fmt”块必须出现。
如果我加载另一个文件,则会出现“fmt”块,那么该块实际包含什么信息(不能是数据块,因为它的值是0x61746164。