2015-05-19 283 views
0

对于我的程序,我正在制作pac-man。每当pac-man吃一个点时,我都想播放吱吱的声音。我已经知道如何播放声音,但会造成太多滞后。滞后时间大约为0.5秒,但总体而言,它减缓了我的游戏。有什么建议么?C++播放声音滞后

#include <iostream> 
#include <windows.h> 
#pragma comment (lib , "winmm.lib") // Used for sound 
using namespace std; 

int main() 
{ 
    PlaySound(TEXT("Sounds\\pacman chomp.wav"), NULL, SND_FILENAME|SND_ASYNC); 
    system("pause"); 
} 
+1

如果内存服务,您可能需要'waveOutPrepareHeader'和'waveOutWrite'。基本思想是将文件中的声音数据缓冲区加载到内存中,并为播放做好准备。然后当你需要播放它时,它正在等待并准备好立即播放。 –

+0

我该如何去这条路线? – ThatAwesomeCoder

+0

阅读waveOutPrepareheader和waveOutWrite的文档将是一个好的开始(尽管@Ron Kuper也提出了一个很好的观点)。 –

回答

1

如果你想要真正的“抽搐时间”音频,你应该看看DirectSound,这就是它创建的。 waveOutXXX API比PlaySound更好,但是DirectSound更好。

+0

我该怎么做? – ThatAwesomeCoder

+0

谷歌DirectSound教程,大量的信息在那里。 –