PlaySound () winmm не воспроизводит существующий звук - PullRequest
0 голосов
/ 30 сентября 2019

У меня просто небольшой проект астероидной игры на c ++, opengl и glut. Я пытаюсь воспроизвести звук корабля, используя Windows.h и mmsystem.h в minGW и коде Visual Studio, прежде чем я добавлю свой код линейного компилятора.

g++ GLasteroid.cpp -o GLasteroid.exe -L"C:/MinGW/freeglut/lib" -lglu32 -lopengl32 -lfreeglut -lwinmm -I"C:\MinGW\freeglut\include\GL"

У меня небольшая функция accelerateисполняется при нажатии клавиши Glut specialKey UP:

   void accelerate()    //make ship accelerate
            {
            if (Shipacell == true){
                glColor3f(1.0f, 0.0f, 0.0f);
                glVertex2f(0.0f, 0.0f);
                glVertex2f(0.0f, -0.075f);
                glVertex2f(0.01f, 0.0f);
                glVertex2f(0.01f, -0.062f);
                glVertex2f(-0.017f, 0.0f);
                glVertex2f(-0.017f, -0.062f);
                glVertex2f(0.024f, 0.0f);
                glVertex2f(0.024f, -0.049f);
                glVertex2f(-0.035f, 0.0f);
                glVertex2f(-0.035f, -0.049f);
                //PlaySound(TEXT("sounds/thrust.wav"), NULL, SND_FILENAME);//Lag delay bad, with SND_ASYNC not work
                PlaySound(L"\\sounds\\thrust.wav", 0, SND_FILENAME );// got error parameter 1
            }

    }

Посмотрите в способе 1, песня воспроизводится с большой задержкой с SND_ASYNC не работает. При методе 2 я получил сообщение об ошибке на терминале:

In file included from c:\mingw\include\windows.h:62,
                 from GLasteroid.cpp:8:
c:\mingw\include\mmsystem.h:1561:24: note:   initializing argument 1 of 'BOOL PlaySoundA(LPCSTR, HMODULE, DWORD)'
 BOOL WINAPI PlaySoundA(LPCSTR,HMODULE,DWORD);

Если я попытаюсь указать весь путь C:\\MinGW\\projetos\\sounds\\thrust.wav, я получу ту же ошибку.

Если у кого-то есть идеи,пожалуйста, напишите.

...