我正在尝试在使用 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);
关于c++ - 在 C++/OpenGL 中使用 PlaySound() 在后台播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8804880/