Как играть в С++ с помощью Windows API?

Я пытаюсь воспроизвести музыкальный файл в своем кодировании, но не смог. У меня есть музыкальный файл в той же папке, в которой сохраняется файл .cpp.

Может кто-нибудь мне помочь?

Мой код:

#include <iostream>  
#include <windows.h>

int main() { 
    PlaySound("kenny g.WAV", NULL, SND_ASYNC);    
}

Ответ 1

Вам необходимо использовать абсолютный путь, убедитесь, что вы отправляете имя файла (используйте флаг SND_FILENAME) и приостанавливаете программу достаточно долго, чтобы воспроизводить звуковой файл (например, использовать getchar()). Вам нужно связать библиотеку winmm.lib в ваших настройках проекта и #include windows.h и mmsystem.h в заголовке.

#include <windows.h>
#include <mmsystem.h>

int main() {
    PlaySoundA((LPCSTR) "C:\\kenny g.WAV", NULL, SND_FILENAME | SND_ASYNC);
    getchar();
}

API: http://msdn.microsoft.com/en-us/library/ms712879(VS.85).aspx
Это должно быть так. Дайте мне знать, спасибо!

Ответ 2

попробуйте добавить -lwinmm в свои настройки компилятора. Это сработало для меня. Просто введите это в области параметров компилятора, и он будет работать.

Ответ 3

Можете ли вы использовать абсолютный путь и проверить, является ли это ошибкой пути?

Ex: PlaySound("C:\\kenny g.WAV", NULL, SND_ASYNC); 

Ответ 4

int main() { 
    PlaySound("kenny g.WAV", NULL, SND_ASYNC); 
}

С флагом SND_ASYNC ваша программа может (и она будет) немедленно прекратиться!

Попробуйте PlaySound("kenny g.WAV", NULL, SND_SYNC); сначала посмотреть, работает ли он.

Ответ 5

Говоря о пути, ваш файл данных должен находиться там, где находится ваш исполняемый файл, а не где находится ваш исходный файл, если путь не является абсолютным.

И да, этот вопрос был спросил 9 лет назад;)

Ответ 6

вы можете протестировать PlaySound (TEXT ( "SystemStart" ), NULL, SND_ALIAS);

Ответ 7

На всякий случай он еще не решен! Вам нужно включить два файла заголовка, упомянутые в предыдущих комментариях, связать проект с требуемой библиотекой и поместить звуковой файл в ту же папку, что и ваш .exe файл (если вы не используете полный путь)

Ответ 8

Попробуйте использовать этот код для меня. Также для кода:: Блокировать winmm в настройках компоновщика.

#include <iostream>  
#include <windows.h>
#include <MMSystem.h>
 int main(){
PlaySound(TEXT("your file path.wav") , NULL , SND_SYNC) ;
    return 0;
}