3,881
社区成员
发帖
与我相关
我的任务
分享

// TODO: 在此添加控件通知处理程序代码
pBuffer1=(PBYTE)malloc(INP_BUFFER_SIZE);
pBuffer2=(PBYTE)malloc(INP_BUFFER_SIZE);
if (!pBuffer1 || !pBuffer2) {
if (pBuffer1) free(pBuffer1);
if (pBuffer2) free(pBuffer2);
MessageBeep(MB_ICONEXCLAMATION); //播放由SystemExclamation定义的声音
MessageBox(_T("Memory erro!"));
return ;
}
//open waveform audo for input
waveform.wFormatTag=WAVE_FORMAT_PCM; //设置波形的格式 PCM格式
waveform.nChannels=1; //设置音频文件的通道数量
waveform.nSamplesPerSec=11025; //设置每个声道播放和记录时的样本频率
waveform.nAvgBytesPerSec=11025; //设置请求的平均数据传输率
waveform.nBlockAlign=1; //以字节为单位设置块对齐
waveform.wBitsPerSample=8; //根据wFormatTag的类型设置每个样本的位深 如果wFormatTag= WAVE_FORMAT_PCM,此值应该设为8或16
waveform.cbSize=0; //额外信息的大小,以字节为单位
if (waveInOpen(&hWaveIn,WAVE_MAPPER,&waveform,(DWORD)this->m_hWnd,NULL,CALLBACK_WINDOW)) { //waveInOpen是动态连接库winmm.dll之函数,用以开启波形输入设备
free(pBuffer1);
free(pBuffer2);
MessageBeep(MB_ICONEXCLAMATION);
MessageBox(_T("Audio can not be open!"));
}
pWaveHdr1->lpData=(LPTSTR)pBuffer1; //指向波形数据缓冲区
pWaveHdr1->dwBufferLength=INP_BUFFER_SIZE; //波形数据缓冲区的长度
pWaveHdr1->dwBytesRecorded=0; //若首部用于输入, 指出缓冲区中的数据量
pWaveHdr1->dwUser=0; //指定用户的32位数据
pWaveHdr1->dwFlags=0; //缓冲区标志
pWaveHdr1->dwLoops=1; //循环播放次数, 仅用于输出缓冲区
pWaveHdr1->lpNext=NULL; //保留
pWaveHdr1->reserved=0; //保留
waveInPrepareHeader(hWaveIn,pWaveHdr1,sizeof(WAVEHDR)); //为波形输入准备一个缓冲区
pWaveHdr2->lpData=(LPTSTR)pBuffer2;
pWaveHdr2->dwBufferLength=INP_BUFFER_SIZE;
pWaveHdr2->dwBytesRecorded=0;
pWaveHdr2->dwUser=0;
pWaveHdr2->dwFlags=0;
pWaveHdr2->dwLoops=1;
pWaveHdr2->lpNext=NULL;
pWaveHdr2->reserved=0;
waveInPrepareHeader(hWaveIn,pWaveHdr2,sizeof(WAVEHDR));
//////////////////////////////////////////////////////////////////////////
pSaveBuffer = (PBYTE)realloc (pSaveBuffer, 1) ; //改变pSaveBuff内存所指大小 为 1
// Add the buffers
waveInAddBuffer (hWaveIn, pWaveHdr1, sizeof (WAVEHDR)) ; //向波形输入设备发送一个输入缓冲区
waveInAddBuffer (hWaveIn, pWaveHdr2, sizeof (WAVEHDR)) ;
bEnding = FALSE ;
dwDataLength = 0 ;
waveInStart (hWaveIn) ; //启动输入 的waveInStart功能开始在给定的波形音频输入设备的输入。
你还不如直接把你这个工程放出来,大家或许还更容易找到问题,这样没头没尾的东西,要找出问题得多麻烦……[/quote]
有道理……不过估计也没多少人看,干脆重新写一遍,之前编译出现过的错误除了问题提出的以外都一遍过了,想到哪写到哪,也就当整理一下思路吧。
http://blog.csdn.net/gctpie/article/details/47836197[/quote]
你把整个工程发一个放到一个地方,这样只看cpp貌似没问题的~[/quote]
http://pan.baidu.com/s/1hq2HUYg
这是整个工程……我发现Resource.h有点问题,稍微又改了一下
你还不如直接把你这个工程放出来,大家或许还更容易找到问题,这样没头没尾的东西,要找出问题得多麻烦……[/quote]
你还不如直接把你这个工程放出来,大家或许还更容易找到问题,这样没头没尾的东西,要找出问题得多麻烦……[/quote]
有道理……不过估计也没多少人看,干脆重新写一遍,之前编译出现过的错误除了问题提出的以外都一遍过了,想到哪写到哪,也就当整理一下思路吧。
http://blog.csdn.net/gctpie/article/details/47836197[/quote]
你把整个工程发一个放到一个地方,这样只看cpp貌似没问题的~
你还不如直接把你这个工程放出来,大家或许还更容易找到问题,这样没头没尾的东西,要找出问题得多麻烦……[/quote]
有道理……不过估计也没多少人看,干脆重新写一遍,之前编译出现过的错误除了问题提出的以外都一遍过了,想到哪写到哪,也就当整理一下思路吧。
http://blog.csdn.net/gctpie/article/details/47836197
不知是何用意。
[/quote]
你这每次截一半东西出来,没前文也没下文,又不是神仙……
你还不如直接把你这个工程放出来,大家或许还更容易找到问题,这样没头没尾的东西,要找出问题得多麻烦……
pWaveHdr1、pWaveHdr1没有初始化分配内存吧?要分配内存才能使用,原工程在InitDialog初始化了……
