求EVC录音程序

cjyun 2004-08-10 10:28:36
我通过修改VC的录音程序,能在模拟器上录音,但在板子上运行时,却不能录音,我不知道是板子的问题还是程序问题,想参考各位的录音程序。谢谢了!
我的邮箱:cjyun2004@126.com
...全文
203 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cherishhu 2004-09-03
  • 打赏
  • 举报
回复
我发到你的邮箱里了,查收
无聊客 2004-08-21
  • 打赏
  • 举报
回复
我帮你顶下,我做过,但是最近没空帮你看代码,我懒,呵呵
cjyun 2004-08-21
  • 打赏
  • 举报
回复
我疯了,没人会啊,郁闷!!
cjyun 2004-08-19
  • 打赏
  • 举报
回复
郁闷都是自己在答话
cjyun 2004-08-16
  • 打赏
  • 举报
回复
不行啊,没人帮我啊
crazyeagle 2004-08-16
  • 打赏
  • 举报
回复
没做过,帮你顶!
cherishhu 2004-08-13
  • 打赏
  • 举报
回复
帮你顶一下
cjyun 2004-08-12
  • 打赏
  • 举报
回复
顶一下
cjyun 2004-08-10
  • 打赏
  • 举报
回复
不好意思多贴了一遍 void CRecordeDlg::OnStop()
cjyun 2004-08-10
  • 打赏
  • 举报
回复
void CRecordeDlg::OnStart()
{
// TODO: Add your control notification handler code here
//allocate buffer memory
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);
AfxMessageBox(_T("Memory erro!"));
return ;
}

//open waveform audo for input

waveform.wFormatTag=WAVE_FORMAT_PCM;
waveform.nChannels=1;
waveform.nSamplesPerSec=11025;
waveform.nAvgBytesPerSec=11025;
waveform.nBlockAlign=1;
waveform.wBitsPerSample=8;
waveform.cbSize=0;


if (waveInOpen(&hWaveIn,WAVE_MAPPER,&waveform,(DWORD)this->m_hWnd,NULL,CALLBACK_WINDOW)) {
free(pBuffer1);
free(pBuffer2);
MessageBeep(MB_ICONEXCLAMATION);
AfxMessageBox(_T("Audio can not be open!"));
}
/**********************************************/
// pWaveHdr1->lpData=(LPTSTR)pBuffer1;
pWaveHdr1->lpData=(char *)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));
/************************************************/
// pWaveHdr2->lpData=(LPTSTR)pBuffer2;
pWaveHdr2->lpData=(char *)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) ;
// Add the buffers

waveInAddBuffer (hWaveIn, pWaveHdr1, sizeof (WAVEHDR)) ;
waveInAddBuffer (hWaveIn, pWaveHdr2, sizeof (WAVEHDR)) ;

// Begin sampling

dwDataLength = 0 ;
waveInStart (hWaveIn) ;



}

void CRecordeDlg::OnStop()
{
// TODO: Add your control notification handler code here
TRACE(_T("rec stop \n"));
//Sleep(1500);
waveInReset(hWaveIn);
}

void CRecordeDlg::OnPlay()
{
// TODO: Add your control notification handler code here
//open waveform audio for output
waveform.wFormatTag = WAVE_FORMAT_PCM;
waveform.nChannels = 1;
waveform.nSamplesPerSec =11025;
waveform.nAvgBytesPerSec=11025;
waveform.nBlockAlign =1;
waveform.wBitsPerSample =8;
waveform.cbSize =0;


if (waveOutOpen(&hWaveOut,WAVE_MAPPER,&waveform,(DWORD)this->m_hWnd,NULL,CALLBACK_WINDOW)) {
MessageBeep(MB_ICONEXCLAMATION);
AfxMessageBox(_T("Audio output erro"));
}


return ;
}

void CRecordeDlg::OnStop()
{
// TODO: Add your control notification handler code here
TRACE(_T("rec stop \n"));
//Sleep(1500);
waveInReset(hWaveIn);
}
//////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
//下面是MM_WIM_DATA的处理函数,这里模拟器运行没错,PDA上运行有错。提示"erro memory"
void CRecordeDlg::OnDataMessage(WPARAM wParam,LPARAM lParam)
{
pNewBuffer = (PBYTE)realloc (pSaveBuffer, dwDataLength +
((PWAVEHDR) lParam)->dwBytesRecorded) ;

if (pNewBuffer == NULL)
{
waveInClose (hWaveIn) ;
MessageBeep (MB_ICONEXCLAMATION) ;
AfxMessageBox(_T("erro memory"));
return ;
}

pSaveBuffer = pNewBuffer ;

CopyMemory (pSaveBuffer + dwDataLength, ((PWAVEHDR) lParam)->lpData,
((PWAVEHDR) lParam)->dwBytesRecorded) ;

dwDataLength += ((PWAVEHDR) lParam)->dwBytesRecorded ;

// Send out a new buffer

waveInAddBuffer (hWaveIn, (PWAVEHDR) lParam, sizeof (WAVEHDR)) ;
TRACE(_T("done input data\n"));
return ;

}
模拟器上可以录音的,PDA上却不行,麻烦各位看一下,找一下错误,谢谢!
无聊客 2004-08-10
  • 打赏
  • 举报
回复
我截取了一些代码发给你了,能够在SPV和PPC机器上实现录音,希望对你有所帮助

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧