在C中使用winmm库

时间:2012-12-23 19:43:54

标签: c winmm

我正在尝试创建一个程序,我可以播放音乐,即mp3文件。我正在尝试使用winmm库。首先,当我尝试链接它时,编译器给出了我意识到的错误该程序没有与库正确链接,但后来我在链接器设置中添加了库文件,现在程序执行正常(没有错误 - 表明它已正确链接)但没有播放音乐。我可以'弄清楚问题是什么。我现在正在使用代码块,它使用gcc编译器。任何人都可以解释问题是什么以及音乐没有播放的原因?如果有人能帮助我,我将不胜感激! :)

我的代码(它只是打印文本但没有播放音乐):

#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 个答案:

答案 0 :(得分:4)

MCI命令立即返回。这意味着您在播放之前几乎不会立即暂停和关闭mp3。查看文档,您必须使用Wait Flag

mciSendString("play song.mp3 wait",NULL,NULL,NULL);