做连连看游戏的过程中
一开始用的是这个函数
PlaySound(_T("res\\music.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP );
作为游戏背景音乐
但是当播放特效音乐时,背景音乐就停止播放了
想到两种解决方案:
1.用mciSendString(据说可以同时播放多个音乐和其他媒体)
mciSendString(_T("open res\\bubble.wav alias aa"),NULL,0,NULL); mciSendString(_T("play aa wait"),NULL,0,NULL); mciSendString(_T("close aa"),NULL,0,m_hWnd);
由于我只需要两个音乐所以就只使用了PlaySound&mciSendString各一次(所以看不出mciSendString同时播放多个的效果)
但是mciSendString播放音乐操作非常慢,使游戏看起来很不流畅
所以就只能用mciSendString播放背景音乐,PlaySound播放特效声音
2.用多线程和playsound
这个我尝试了一下,没有任何改善,达不到多线程的效果
原因是:playsound不支持混音,多线程不奏效
|