Использование библиотеки winmm в C
Я пытаюсь создать программу, в которой я могу воспроизводить музыку, т.е. mp3-файлы. Я пытаюсь сделать это, используя библиотеку winmm. Сначала, когда я пытался связать ее, компилятор выдавал ошибки, из которых я понял, что программа не был правильно связан с библиотекой, но затем я добавил файл библиотеки в настройках компоновщика, и теперь программа работает нормально (без ошибок, что говорит о том, что она была правильно связана), но музыка не воспроизводится. Я не могу понять, в чем проблема. В настоящее время я использую кодовые блоки, которые используют gcc compiler. Может кто-нибудь объяснить, в чем проблема и почему музыка не играет? Буду благодарен, если кто-нибудь сможет мне помочь!:)
мой код (он просто печатает текст, но музыка не воспроизводится):
#include <stdio.h>
#pragma comment (lib, "winmm.a")
#include <windows.h>
#include <mmsystem.h>
int main()
{
printf("Hello world!\n");
mciSendString("play song.mp3",NULL,NULL,NULL);
printf("\nY");
mciSendString("pause song.mp3",NULL,NULL,NULL);
mciSendString("close song.mp3",NULL,NULL,NULL);
printf("\ndone");
return 0;
}
1 ответ
Команды MCI возвращаются немедленно. Это означает, что вы немедленно приостанавливаете и закрываете mp3 перед началом воспроизведения. Глядя на документацию, вы должны использовать флаг ожидания:
mciSendString("play song.mp3 wait",NULL,NULL,NULL);