播放声音不起作用

问题描述 投票:0回答:2

我有一个俄罗斯方块游戏,我想为其添加背景音乐。 我正在尝试使用

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

那么这是因为供过于求吗?我可以以某种方式解决它吗?

c++ windows audio glut
2个回答
2
投票

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

其次,我会使用

SND_FILENAME
标志,如官方文档所述。

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


0
投票

问题可能是因为您尚未将 WINMM.LIB(Windows 多媒体库)添加到链接器使用的对象库中。默认情况下不包含它。如果你使用VS,你需要进入项目设置(属性)并按照以下路径: Linker->General->Additional Library Directoryies , 然后将 WINMM.LIB 添加到此部分。之后就可以很好的使用多媒体功能调用了。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.