Как играть в С++ с помощью 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;
}