C++ 播放声音不起作用

C++ 播放声音不起作用,c++,windows,audio,glut,C++,Windows,Audio,Glut,我有一个俄罗斯方块游戏,我想添加一个背景音乐。 我试图使用PlaySound(TEXT(“Tetris.wav”)、NULL、SND_SYNC但是我只得到了“windows声音”,而不是音乐 它编译。我想它不想与过剩合作 这是我的main() 我已经包括了#include和#include,在这里效果很好: #include <iostream> #include <Windows.h> #include <MMSystem.h.> using namespa

我有一个俄罗斯方块游戏,我想添加一个背景音乐。 我试图使用
PlaySound(TEXT(“Tetris.wav”)、NULL、SND_SYNC但是我只得到了“windows声音”,而不是音乐

它编译。我想它不想与过剩合作

这是我的
main()

我已经包括了
#include
#include
,在这里效果很好:

#include <iostream>
#include <Windows.h>
#include <MMSystem.h.>
using namespace std;

int main()
{

    PlaySound(TEXT("Tetris.wav"), NULL, SND_SYNC);
    cout << "Hello world!" << endl;
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
播放声音(文本(“Tetris.wav”),空,SND_同步);

cout首先,你最好使用绝对路径

其次,我将使用
SND_FILENAME
标志,如所述


(我无法想象这与过剩有任何关系。)

首先,最好使用绝对路径

其次,我将使用
SND_FILENAME
标志,如所述


(我无法想象这与过量有关。)

如前所述,您的程序正在查找文件“Tetris.wav”在当前目录中。您知道那是哪个目录吗?您知道如何检查吗?@DrewDormann Tetris.wav与我的项目位于同一文件夹中。请尝试使用完整路径以确保目录不是问题所在。@Ericsir nope先生,仍然没有。我想您已经阅读了吗?
SND_FILENAME
?如前所述,您的程序正在查找该文件“俄罗斯方块"在当前目录中。您知道那是哪个目录吗?您知道如何检查吗?@DrewDormann Tetris.wav与我的项目位于同一文件夹中。请尝试使用完整路径以确保目录不是问题所在。@Ericsir nope先生,仍然没有问题。我想您已经阅读了吗?
SND_FILENAME
?第三,我将使用
SND_ASYNC
,因为e文件将用作背景音乐。如果使用
SND\u SYNC
PlaySound()
在播放整个WAV文件之前不会退出。
SND_ASYNC
将对音频进行排队,然后立即退出,以便可以在后台继续播放。此外,即使首选使用
SND_文件名
,在这种情况下也是可选的:“fdwSound中的三个标志(SND_别名、SND_文件名和SND_资源)确定名称是否被解释为系统事件、文件名或资源标识符的别名。如果未指定这些标志,PlaySound将在注册表或WIN.INI文件中搜索具有指定声音名称的关联。如果找到关联,则播放声音事件。如果在注册表中未找到关联,则播放声音事件第三,我会使用
SND\u ASYNC
,因为该文件将用作背景音乐。如果使用
SND\u SYNC
PlaySound()
在播放整个WAV文件之前不会退出。
SND_ASYNC
将对音频进行排队,然后立即退出,以便可以在后台继续播放。此外,即使首选使用
SND_文件名
,在这种情况下也是可选的:“fdwSound中的三个标志(SND_别名、SND_文件名和SND_资源)确定名称是否被解释为系统事件、文件名或资源标识符的别名。如果未指定这些标志,PlaySound将在注册表或WIN.INI文件中搜索具有指定声音名称的关联。如果找到关联,则播放声音事件。如果在注册表中未找到关联,则播放声音事件ry,则该名称被解释为文件名。“
#include <iostream>
#include <Windows.h>
#include <MMSystem.h.>
using namespace std;

int main()
{

    PlaySound(TEXT("Tetris.wav"), NULL, SND_SYNC);
    cout << "Hello world!" << endl;
    return 0;
}