我正在尝试在使用opengl用c++构建的游戏的背景下播放wav文件。我正在使用以下行播放wav文件:

 PlaySound("starwars.wav", NULL, SND_FILENAME|SND_LOOP);

问题是音乐开始播放时动画会停止。我尝试按键盘按钮开始播放音乐,但是当我这样做时,音乐开始播放,所有动画都停止了。有办法避免这种情况吗?我只想在后台播放音乐,而PlaySound似乎是实现这一目标的最简单方法,因为事实上它只需要一行代码即可。

最佳答案

你想传递
SND_ASYNC
这将使PlaySound立即返回,而不是等待声音结束播放,在您的情况下,这不会像循环播放时那样。 IIRC PlaySound只能在任何时间播放一种声音,因此最好寻找声音库,尤其是在制作游戏时。

最后,您的样本可以工作:
PlaySound("starwars.wav", NULL, SND_ASYNC|SND_FILENAME|SND_LOOP);
Please see this

10-01 14:00
查看更多