前一段时间写一个录音功能的DLL,找了N久,发现N多例子都非常麻烦!现在功能DLL做完了,总结一下贴出来大家看看. 实现了录音,放音,打开,保存功能.非常简单,使用的是MSDN里面的MCIWnd来实现的.唉~废话少说了,还是看代码吧! 用VC建立一个Dialog,加入N个按钮.我的Dialog叫Wav3是测试用的.所以懒得弄名字了,下面也有一个些名字写的不怎么样. 先是初始化函数 void CWav3Dlg::OnButtonInit() MCIWndNew(g_hWndMCIWnd,"waveaudio"); 初始化完了之后马上就可以录音了,下面就是录音函数 void CWav3Dlg::OnButtonRec() 录音开始了,接下来就是停止,不停止还了得~! { 录完声音了,播放试试,这个播放也可以播放从硬盘打开的声音文件. void CWav3Dlg::OnButtonPlay() 察看评论详细内容我要发表评论 作者笔名 :
全局的HWND g_hWndMCIWnd; //因为懒得传来传去就全局好了
{
MCIWndClose(g_hWndMCIWnd); //这个是为了打开一个声音的之前关闭以前的声音,应该先加一个判断好了.
g_hWndMCIWnd = MCIWndCreate(this->m_hWnd,::AfxGetApp()->m_hInstance,WS_CAPTION,NULL); //创建句柄要说的是最后一个参数,如果是NULL,就新建一个,如果是一个文件的路径,就打开它.但是都要使用下面的MCIWndNew来开内存
}
{
if(MCIWndCanRecord(g_hWndMCIWnd)) //这里是判断是否可以录音
{
MCIWndRecord(g_hWndMCIWnd); //录音就这个函数,很简单
}
else
{
AfxMessageBox("error #01"); //这个错误报告很垃圾的,不建议用,不过测试用还可以.
}
}
void CWav3Dlg::OnButtonRecStop() //这个停止函数不是只可以用在录音的,播放录音时也可以使用它来停止.
MCIWndStop(g_hWndMCIWnd); //别怀疑,就这么简单
}
{
if(MCIWndCanPlay(g_hWndMCIWnd)) //这里判断有没有可以播放的东西
{
简短内容
发表时间
VC实现录音,放音,保存,打开功能
太平洋电脑网
2004年12月09日 10:11