读取wav文件头,获取文件详细信息

这段代码展示了如何使用HMMIO API读取wav文件头,获取文件的fmt和data块信息,包括fmt块的大小、data块的大小以及数据长度。
摘要由CSDN通过智能技术生成

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值