编辑所以代码是正确的(感谢 ta.speot.is) - 底部的新问题
所以我一直在玩这个级别的控制台,我们被要求制作我们的第一个“项目”进行评估。我已经完成了基本的应用程序.. 但我想稍微提高一下并添加一些声音。将从控制台播放的声音。
这个测试有效(有点),因为它会播放一个声音文件,但有两个问题……
当声音开始播放时,应用程序会冻结,直到它完成播放。
当我尝试编译为“发布”时,它会出现“链接错误”错误 - 致命错误 LNK1120: 1 unresolved externals。
#include <iostream>
#include <windows.h>
#include <mmsystem.h>
using namespace std;
int main(){
//PlaySound(TEXT("mywavsound.wav"), NULL, SND_FILENAME); - My erroring code
PlaySound(TEXT("mywavsound.wav"), NULL, SND_FILENAME | SND_ASYNC);// - the correct code
int test = 0;
cin>>test;
return 0;
}
所以我的问题是…
如何在不冻结控制台的情况下播放声音,例如,我可以在项目运行时播放循环音乐文件?如果我可以在它上面播放其他声音,那就太好了,例如,当你按下回车键时,它会在不停止音乐的情况下播放声音。
如何添加 wav 文件以便将其编译为发行版?
编辑
我知道 SND_ASYNC
东西,但我不知道如何使用它,如果没有东西不编译,我似乎无法使用它.. 有没有人有使用 SND_ASYNC
的代码示例 ---
?
编辑 2
所以我现在有这个工作….使用
PlaySound(TEXT("mysound.wav"), NULL, SND_FILENAME | SND_ASYNC);
现在我想知道如何一次播放 1 个或多个声音,因为如果我用该标志调用 PlaySound()
两次,它将停止第一个并播放第二个.. 有没有办法播放同时发出2个声音?
原文由 aJynks 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果你用谷歌搜索
PlaySound
这是第一个结果:您应该熟悉搜索引擎及其功能。
您需要在发布和调试配置中链接
winmm.lib
。或者,添加到源代码的顶部。