C/C++编程 MP3等音频文件播放

时间:2025-03-15 07:34:35
#include <>//两个头文件不能互换,要不然会出一大堆问题
#include <>

//给VS2008或以上版本添加预编头文件
#if _MSC_VER >= 1500
// VC6.0拖曳编译不用头文件,这里VC6.0不给该头文件
#include ""
#endif

//VC,VS编译器需要的库
#ifdef _MSC_VER
#pragma comment(lib,"")
#endif

int main(void)
{
    TCHAR* path = TEXT("F:\\音乐时间\\阿桑\\阿  桑 - 一直很安静.mp3");//音乐文件位置
    HWND MyPlayer = MCIWndCreate(NULL,GetModuleHandle(NULL),0,path);
    MCIWndPlay(MyPlayer);//开始播放
    Sleep(100000);//控制台程序下,让程序暂停一下或来个死循环等,要不要直接退出,没法播放
    return 0;
}

/*
实测VC6.0,VS2008都可以直接编译成功,不需要再更改源代码

MinGW编译:
    gcc  -o MyPlayer -m32 -lvfw32 -Ofast -fomit-frame-pointer -s -Ofast -fomit-frame-pointer

    -lvfw32和-s是连接参数
    -s大略是所谓生成生布版的程序
    -lvfw32是连接时加上
    程序还可以播放MIDI,AVI,WMV,MPG等影音文件
*/

/*
常用的控制函数(实际上是宏):
    MCIWndHome(hWnd)                    至起始位置
    MCIWndPause(hWnd)                   暂停
    MCIWndPlay(hWnd)                    开始播放
    MCIWndPlayFrom(hWnd,lPos)           从lPos播放
    MCIWndPlayFromTo(hWnd,lStart,lEnd)  从lStart播到lEnd
    MCIWndPlayTo(hWnd,lPos)             播放至lPos
    MCIWndResume(hwnd)                  暂停后继续
    MCIWndSeek(hWnd,lPos)               寻道
    MCIWndSetVolume(hWnd,iVol)          设置音量
    MCIWndStop(hWnd)                    停止播放
*/

/*
更多函数参考资料:
/en-us/library/dd798180(v=vs.85).aspx
/en-us/library/dd798118(v=vs.85).aspx
/zh-cn/windows/win32/api/vfw/nf-vfw-mciwndcreatea
*/