VC实现录音,放音,保存,打开功能
前一段时间写一个录音功能的DLL,找了N久,发现N多例子都非常麻烦!现在功能DLL做完了,总结一下贴出来大家看看. 实现了录音,放音,打开,保存功能.非常简单,使用的是MSDN里面的MCIWnd来实现的.唉~废话少说了,还是看代码吧! 用VC建立一个Dialog,加入N个按钮.我的Dialog叫Wav3是测试用的.所以懒得弄名字了,下面也有一个些名字写的不怎么样. 先是初始化函数
MCIWndClose(g_hWndMCIWnd); //这个是为了打开一个声音的之前关闭以前的声音,应该先加一个判断好了. g_hWndMCIWnd = MCIWndCreate(this->m_hWnd,::AfxGetApp()->m_hInstance,WS_CAPTION,NULL); //创建句柄要说的是最后一个参数,如果是NULL,就新建一个,如果是一个文件的路径,就打开它.但是都要使用下面的MCIWndNew来开内存
初始化完了之后马上就可以录音了,下面就是录音函数
录音开始了,接下来就是停止,不停止还了得~!
录完声音了,播放试试,这个播放也可以播放从硬盘打开的声音文件.
MCIWndSeek(g_hWndMCIWnd,m_Int); //说一下这里吧,这里是确定从哪里开始播放.没有也可以就是从头开始播放.里面的m_Int是用来传入播放开始点的,比如从滑动条上接收一个数字,传到这里,就从这里开始播放了.但这个方法是笨方法!
最后说说保存吧.
MCIWndSave(g_hWndMCIWnd, "a"); //这里有点问题要说说了,MSDN里面写,这个MCIWndSave可以直接保存文件,第二个参数传入一个-1就会自动打开保存框给我们选择,但是我试了N久都没搞定,(也请高手看看,谁搞定了mail给我一份)它不打开保存框给我,但是返回一个成功值!靠~!还有直接保存为文件,文件名只要大于一位就是乱码,所以我在这里绕了一个圈,先保存成一个a,拷贝改名为要保存的文件名,最后在结束里面删除掉这个a.
OK,已经完成了!打开就不用说了,直接传一个文件路径给初始化的最后一个参数就行了. 最后提前祝大家圣诞快乐,其实还早着呢~ |
- 上一篇:编程必备:VC常用知识重温
- 下一篇:不用Hook也能实现方便快捷的换肤功能