设备可以打开后 ,就需要 初始化两个输入缓存区的声音文件头了 .声音文件头主要是在录
音时 ,记录相关的数据 ,以方便后期的处理 .
PWAVEHDR pWaveHdr1,pWaveHdr2;
pWaveHdr1->lpData=(LPSTR)pBuffer1; //缓冲区地址
pWaveHdr1->dwBufferLength=INP_BUFFER_SIZE; //缓冲区长度
pWaveHdr1->dwBytesRecorded=0;
pWaveHdr1->dwUser=0;
pWaveHdr1->dwFlags=0;
pWaveHdr1->dwLoops=1;
pWaveHdr1->lpNext=NULL;
pWaveHdr1->reserved=0;
waveInPrepareHeader(hWaveIn,pWaveHdr1,sizeof(WAVEHDR)); //将缓冲区信息和输
入设备相关联
waveInAddBuffer (hWaveIn, pWaveHdr1, sizeof (WAVEHDR)) ; // 将缓冲区地址和输入
设备相关联
在对 PWAVEHDR 进行赋值时 ,本程序中需要设置的其实只有 lpData 和 dwBufferLength.
接下来将 pWaveHdr2 同 pWaveHdr1 进行相关处理 (略).
由于我们是要将录音数据以文件形式保存到非易失性存储器上 ,所以在开始录音之前我们
需要先建立文件 ,并且把相关的文件头信息写入 (WriteWaveFileHeader 是自写函数 ,代码附
在文章最后 ).
//先写文件头
MMRESULT mr;
mr=WriteWaveFileHeader(strSavePath,&waveform,0,TRUE);
if(mr != MMSYSERR_NOERROR)
{
AfxMessageBox(L" 文件保存失败 !");
评论0
最新资源