多线程编程技巧

4

我想在游戏运行时播放声音。我知道如何播放声音和运行游戏,但是我无法同时做到这两件事。DOS游戏在播放声音时会暂停。这是声音的cpp代码:

void watersplashsound()
{PlaySound(TEXT("waterSPLASH.wav"), NULL, SND_FILENAME);}

我不确定是否需要使用多线程。我知道多线程是什么,但我不确定。


1
你正在使用哪个库或API?(PlaySound在哪里?) - Prof. Falken
1个回答

3

Playsound需要另一个标志来使其不同步运行。请按如下方式调用:

void watersplashsound()
{
  PlaySound(TEXT("waterSPLASH.wav"), NULL, SND_FILENAME | SND_ASYNC);
}

请注意,我不知道如何在声音播放完成之前停止它。

2
@someguy 如果这个答案对你有帮助,请点击旁边的勾选标记以确认它是最有用的答案。 - RedX
停止异步播放的声音:PlaySound(NULL, 0, 0); - ravenspoint
我将使用等待函数,并尝试设置它。 - someguy
1
不用理会,那个在游戏进行时不播放声音。 - someguy
@someguy,你试过使用SND_ASYNC吗?不是SND_SYNC,而是带有“A”的那个。 - Prof. Falken

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接