社区
嵌入开发(WinCE)
帖子详情
求EVC录音程序
cjyun
2004-08-10 10:28:36
我通过修改VC的录音程序,能在模拟器上录音,但在板子上运行时,却不能录音,我不知道是板子的问题还是程序问题,想参考各位的录音程序。谢谢了!
我的邮箱:cjyun2004@126.com
...全文
210
11
打赏
收藏
求EVC录音程序
我通过修改VC的录音程序,能在模拟器上录音,但在板子上运行时,却不能录音,我不知道是板子的问题还是程序问题,想参考各位的录音程序。谢谢了! 我的邮箱:cjyun2004@126.com
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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机器上实现录音,希望对你有所帮助
好用的wince
录音
设置路径
程序
(
EVC
)
总结来说,这个项目提供了一个在Windows CE 6.0平台上运行,基于
EVC
和VS2005开发的
录音
程序
,它特别允许用户自定义
录音
文件的保存位置,适用于搭载S3C2440处理器的设备。通过SDK和Windows CE的多媒体API,开发者成功...
evc
下实现
录音
(2440)
在Windows CE (CE5.0) 平台上,使用Embedded Visual C++ (
EVC
) 进行
录音
功能的开发是一项常见的任务。对于初次接触这个领域的开发者来说,这可能具有一定的挑战性,但通过理解基本原理和步骤,可以逐步掌握。本篇...
录音
小
程序
可用.pdf
录音
小
程序
在Windows CE(Wince)环境下开发是一...总的来说,
EVC
录音
详解提供了一个基础的Wince下
录音
小
程序
的实现方法,通过理解并应用这些基础知识,开发者可以构建自己的音频处理应用
程序
,满足不同场景下的需
求
。
录音
小
程序
借鉴.pdf
【
录音
小
程序
开发详解】 在Windows CE环境下,使用
EVC
(Embedded Visual C++)开发
录音
功能并不复杂,关键在于理解和运用音频API,特别是waveIn API。本文将深入解析如何利用waveIn API来实现
录音
并保存为WAV文件。...
录音
小
程序
学习.pdf
【
录音
小
程序
学习】 在Windows CE (Wince)环境下开发
录音
应用
程序
并不复杂,主要涉及的是音频数据的采集和存储。本文将深入讲解如何使用
EVC
(Embedded Visual C++)来实现这一功能,特别是如何利用WaveIn API进行...
嵌入开发(WinCE)
19,520
社区成员
41,566
社区内容
发帖
与我相关
我的任务
嵌入开发(WinCE)
硬件/嵌入开发 嵌入开发(WinCE)
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章