今天在给软件添加提示音的时候,发现以前可以使用的代码不起作用了,搞了半天才发现是资源文件内容格式写错了。
比较好一点的做法如下:
rc文件内容:
OK wav "F:/OK.WAV"
使用代码如下:
#include <mmsystem.h>
#pragma resource "***.res" =>(**为你自己的资源名称)
//装入Wav文件
HRSRC reshandle = FindResource(HInstance,soundName,__T("WAV"));
if (reshandle != NULL) {
HGLOBAL hglobal = LoadResource(HInstance, reshandle);
if (hglobal != NULL) {
const void* wav_handle = LockResource(hglobal);
//播放Wav文件,由于Wav文件装载在内存中,sndPlaySound函数要用SND_MEMORY参数
if (wav_handle != NULL) {
sndPlaySound((wchar_t*)wav_handle, SND_MEMORY | SND_NODEFAULT | SND_SYNC);
UnlockResource(hglobal);
}
FreeResource(hglobal);
}
}
这样就没问题了,ヾ(◍°∇°◍)ノ゙
二、打开、播放、暂停、关闭音乐
//加载音乐
void MCIVoiceOpen()
{
mciSendString(__T("open ./Sounds/bgm.mp3 alias bgm"), NULL, 0, NULL);
}
//播放音乐
void MCIVoiceStart()
{
mciSendString(__T("play bgm"), NULL, 0, NULL);
}
//停止播放音乐
void MCIVoiceStop()
{
mciSendString("stop bgm", NULL, 0, NULL);
}
//关闭音乐播放
void MCIVoiceClose()
{
mciSendString("close bgm", NULL, 0, NULL);
}