保存WAVA文件

CString szfilemane;
 //waveInGetPosition(m_hWaveIn,&m_time,sizeof(MMTIME));//?
 m_pWaveHdr1->dwBytesRecorded = m_time.u.cb;


 DWORD m_WaveHeaderSize = 38;
 DWORD m_WaveFormatSize = 18;
 DWORD m_WrittenBytes = 0;
 
 char lpszFilter[] = "Wave Files (*.wav)|*.wav||";
 CFileDialog m_fileDlg(FALSE,NULL,"WAVE.wav",4|2,lpszFilter,NULL,0);
 if(IDOK == m_fileDlg.DoModal())
 {
  szfilemane = m_fileDlg.GetFileName();
 }
 else
  return ;


 CFile m_file;
 CFileException fileException;
 //CString m_csFileName= m_SavePath;
 m_file.Open(szfilemane,CFile::modeCreate|CFile::modeReadWrite, &fileException);
 
 //写WAVE文件头
 m_file.Write("RIFF",4);
 unsigned int Sec=(m_pWaveHdr1->dwBytesRecorded + m_WaveHeaderSize -8);
 m_file.Write(&Sec,sizeof(Sec));
 m_file.Write("WAVE",4);
 m_file.Write("fmt ",4);
 m_file.Write(&m_WaveFormatSize,sizeof(m_WaveFormatSize));
 m_file.Write(&waveformat.wFormatTag,sizeof(waveformat.wFormatTag));
 m_file.Write(&waveformat.nChannels,sizeof(waveformat.nChannels));
 m_file.Write(&waveformat.nSamplesPerSec,sizeof(waveformat.nSamplesPerSec));
 m_file.Write(&waveformat.nAvgBytesPerSec,sizeof(waveformat.nAvgBytesPerSec));
 m_file.Write(&waveformat.nBlockAlign,sizeof(waveformat.nBlockAlign));
 m_file.Write(&waveformat.wBitsPerSample,sizeof(waveformat.wBitsPerSample));
 m_file.Write(&waveformat.cbSize,sizeof(waveformat.cbSize));
 m_file.Write("data",4);
 m_file.Write(&m_pWaveHdr1->dwBytesRecorded,sizeof(m_pWaveHdr1->dwBytesRecorded));


 DWORD m_seek=46;
 


// m_file.Seek
 m_file.Write(pSaveBuffer,m_pWaveHdr1->dwBytesRecorded);
 m_file.Close();

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值