PlaySound不起作用

时间:2018-03-19 17:50:48

标签: c++ windows audio glut

我有一个俄罗斯方块游戏,我想为它添加背景音乐。 我正在尝试使用PlaySound(TEXT("Tetris.wav"), NULL, SND_SYNC);而不是音乐,我只是听到" Windows声音"。

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

这是我的main()

int main(int argc, char **argv)
{
    PlaySound(TEXT("Tetris.wav"), NULL, SND_SYNC);
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(600,600);
    glutInitWindowPosition(1000, 10);
    glutCreateWindow("Tetris");
    glClearColor(0, 0, 0, 1);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, 150, 200, 0, -1.0, 1.0);
    glutDisplayFunc(display);
    timer(0);
    glutSpecialFunc(keyEvent);
    glutMainLoop();
}

我已添加#include <Windows.h>#include <MMSystem.h.>,此处可以正常使用:

#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;
}

因为过剩是因为我可以以某种方式修复它吗?

1 个答案:

答案 0 :(得分:2)

首先,您最好使用绝对路径。

其次,我会使用the official documentation所述的SND_FILENAME标记。

(我无法想象这与GLUT有什么关系。)