|
加载应用程序Wave资源
如果程序中需要播放一些较小的wav文件,可以将wav文件加载为应用程序的资源,这样,磁盘中就不需要保留wav文件了,程序中可以直接使用wav资源文件就可以了。当然,这么做会增加应用程序的大小,但是,对于较小的wav文件,采用这种方式还是合理的。为了播放wav资源,需要使用系统提供的PlaySound函数,该函数不仅可以播放wav资源,还可以播放wav文件。 语法格式如下: BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound); 参数说明: pszSound:表示播放声音的字符串,可以是表示资源的字符串,也可以是表示wav文件的字符串,其最大长度为256个字符,包括终止符。 hmod:表示包含wav资源的可执行文件句柄。 fdwSound:表示声音的播放标记,可选值如表1所示。 表1 声音播放标记
下面通过一个示例演示如何向应用程序中加载声音及播放加载的声音。 例如,向应用程序中加载声音并播放加载的声音 (1)创建一个单文档/视图结构的应用程序,视图基类为CformView,工程名称为“LoadRes”。 (2)在工作区的资源视图标签页(ResourceView)中鼠标右键单击根节点,在弹出的快捷菜单中选择“Import”菜单项,导入一个“wav”文件。 (3)引用Mmsystem.h头文件和Winmm.lib库文件。 #include "Mmsystem.h" //应用头文件 #pragma comment (lib,"Winmm.lib") //引用库文件 (4)在视图窗口中添加一个按钮,处理按钮的单击事件。 void CLoadResView::OnDemoWave() { PlaySound(MAKEINTRESOURCE(IDR_BUTTONWAVE),AfxGetResourceHandle(), SND_ASYNC|SND_RESOURCE|SND_NODEFAULT); //播放声音资源 } (5)运行程序,单击按钮,将播放声音资源,如图1所示。 ![]() 图1 播放声音资源 提示:我们在设计应用程序时,如果资源文件比较大,不建议将资源文件加载到可执行文件中,这样会导致应用程序变得非常庞大。 |