c++ - 在 C++/OpenGL 中使用 PlaySound() 在后台播放声音

标签 c++ c windows audio graphics

我正在尝试在使用 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

关于c++ - 在 C++/OpenGL 中使用 PlaySound() 在后台播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8804880/

相关文章:

windows - 是否可以覆盖 Windows 中的默认文件夹浏览器对话框?

c - Windows 共享内存中的奇怪错误

c++ - 制作一元运算符二进制

c++ - 使用 g++ 编译 OpenMP 时未知编译指示

c - 遍历ifaddr的链表

C 读取整行文件

c++ - 通过qtcreator/qtdesigner给QMenu添加QWidgetAction

c++ - 内联函数和类以及头文件

c - 打开一个 png 文件并在 C 中读取它的十六进制值

windows - 定期自动下载 Cacti 天气图