| 11.2 | 音频处理技术
WAVE格式的音频文件是比较常用的音频文件类型,本章分别介绍了以WAVE资源和WAVE文件两种方式进行声音的播放,并简单介绍了对音量的控制。
11.2.1 播放应用程序中的WAVE资源
在播放WAVE资源时,首先调用FindResource函数搜索指定的音频资源,然后调用LoadResource函数装载资源到存储器,再调用LockResource函数锁定资源句柄,使用sndPlaySound函数播放WAVE资源,最后调用FreeResource函数释放资源句柄。
例如:
播放WAVE资源的程序设计步骤如下。
ch1104实例位置:mr\11\sl\04
(1)创建一个基于对话框的应用程序。
(2)在工作区窗口选择ResourceView视图,右键单击任意节点,在快捷菜单中选择Insert菜单项,向对话框中导入一个WAVE资源。
(3)向对话框中添加一个按钮和一个群组框控件。
(4)在对话框的源文件导入多媒体库的头文件引用及多媒体静态库的链接。代码如下:
#include #pragma comment(lib, "winmm.lib")
|
(5)处理“播放”按钮的单击事件,播放WAVE资源。代码如下:
void CWAVEDlg::OnPlaybut() { HINSTANCE hInstance = AfxGetInstanceHandle(); CString str; str.Format("#%d",IDR_WAVE1); HRSRC hRsrc = FindResource(hInstance,str,"WAVE"); HGLOBAL hGlobal = LoadResource(hInstance,hRsrc); LPCTSTR lPctstr = (LPCTSTR)LockResource(hGlobal); sndPlaySound(lPctstr,SND_MEMORY|SND_SYNC); FreeResource(hGlobal); }
|
(6)程序运行结果如图11.4所示。

【责任编辑:
阚书 TEL:(010)68476606】