工控编程吧
标题:
159上位机VC MFC声音录制播放与保存操作
[打印本页]
作者:
qq263946146
时间:
2016-1-10 21:07
标题:
159上位机VC MFC声音录制播放与保存操作
(, 下载次数: 1)
上传
点击文件名下载附件
159上位机VC MFC声音录制播放与保存操作
功能展示
录音软件都可以进行声音的录制与保存操作,我们当前例程也实现了声音的录制,播放与保存操作,效果如图;
要点提示
例程主要是通过MCI函数进行声音的录制和保存功能;通过MCIWndCreate()创建一个窗口进行录音,创建后的窗口句柄可以用在函数MCIWndNew()中进行打开录音设备操作;
通过MCIWndCanRecord()判断是否可录音;
通过MCIWndRecord()进行录音;
通过MCIWndStop()停止录制;
通过MCIWndCanPlay()判断是否可播放
通过MCIWndPlay()进行录制语音的播放;
通过MCIWndCanSave()判断是否可以保存操作;
通过MCIWndSave()进行保存操作;
实现功能
1.新建基于对话框的应用程序
2.在进行录音功能实现前得加载操作所用到的头文件及库文件;
#include<vfw.h>#pragma comment(lib,“vfw32.lib”)再添加变量 HWND m_hMCIWave;作为贯穿程序的录音窗口句柄;
3.拖拽四个按钮分别实现开始录音,停止录音,保存录音,播放录音功能;
void CGkbc8Dlg::OnRecord()
{
SetDlgItemText(IDC_NOTICE,"录音中...");
//><
MCIWndClose(m_hMCIWave);
m_hMCIWave=MCIWndCreate(this->m_hWnd,::AfxGetApp()->m_hInstance,WS_CAPTION,NULL);
MCIWndNew(m_hMCIWave,"waveaudio");
if(MCIWndCanRecord(m_hMCIWave))
MCIWndRecord(m_hMCIWave);
}
void CGkbc8Dlg::OnStop()
{
SetDlgItemText(IDC_NOTICE,"待录音...");
//><
MCIWndStop(m_hMCIWave);
}
复制代码
void CGkbc8Dlg::OnTest()
{
if(MCIWndCanPlay(m_hMCIWave))
MCIWndPlay(m_hMCIWave);
//><
SetDlgItemText(IDC_NOTICE,"");
}
void CGkbc8Dlg::OnSave()
{
if (MCIWndCanSave(m_hMCIWave))
{
//MCIWndSave(m_hMCIWave,-1);//弹出默认对话框
CFileDialog Dlg(FALSE,".wav",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"wav File(*.wav)|*.wav||");
if(Dlg.DoModal() == IDOK)
{
CString sPath;
sPath = Dlg.GetPathName();//获取路径及文件名
WCHAR wszFilename[MAX_PATH] = {0};//转换路径名为unicode类型
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, LPCSTR(sPath), sPath.GetLength(), wszFilename, sizeof(wszFilename));
MCIWndSave(m_hMCIWave, wszFilename);
}
}
}
复制代码
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/8dbd8b70bd75f4937079c3a6c907ed08/0/0/w_19rtdcuca1.swf-albumId=5164723909-tvId=5164723909-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4