HMMIO GetWavInfo(char* pWavFileName,WAVEFORMATEX* pWavFmt,DWORD* pDataLen)
{
//读取wav文件头,获取文件详细信息
DWORD dwFmtSize; // “fmt”数据块的大小
DWORD dwDataSize; // “data”数据块的大小
WAVEFORMAT *pFormat = NULL; // “fmt”数据块的地址
HPSTR lpData = NULL; // “data”数据块的地址
// 获取WAVE文件名
// 以内部缓冲区方式打开文件
HMMIO hmmio; // 文件句柄
if(hmmio = mmioOpen( pWavFileName,NULL,MMIO_READ | MMIO_ALLOCBUF))
{
// 寻找形式类型为“WAVE”的“RIFF”数据块,以确定文件为WAVE文件
MMCKINFO mmckinfoParent; // 父块信息
mmckinfoParent.fccType = mmioFOURCC( 'W', 'A', 'V', 'E');
MMRESULT iRet;
if (iRet = mmioDescend(hmmio, (LPMMCKINFO) &mmckinfoParent, NULL, MMIO_FINDRIFF))
{
// 文件不是WAVE文件,错误处理
printf( "fatal:not a wav file! /n");
mmioClose(hmmio, 0);
return (HMMIO)0;
}
// 寻找RIFF数据块的“fmt”子块
MMCKINFO