C/C++編程 MP3等音頻文件播放

#include <windows.h>//兩個頭文件不能互換,要不然會出一大堆問題
#include <vfw.h>

//給VS2008或以上版本添加stdafx.h預編頭文件
#if _MSC_VER >= 1500
// VC6.0拖曳編譯不用stdafx.h頭文件,這裏VC6.0不給該頭文件
#include "stdafx.h"
#endif

//VC,VS編譯器需要的庫
#ifdef _MSC_VER
#pragma comment(lib,"vfw32.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 MyPlayer.c -o MyPlayer -m32 -lvfw32 -Ofast -fomit-frame-pointer -s -Ofast -fomit-frame-pointer

    -lvfw32和-s是連接參數
    -s大略是所謂生成生布版的程序
    -lvfw32是連接時加上libvfw32.a
    程序還可以播放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)                    停止播放
*/

/*
Vfw.h更多函數參考資料:
https://msdn.microsoft.com/en-us/library/dd798180(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/dd798118(v=vs.85).aspx
https://docs.microsoft.com/zh-cn/windows/win32/api/vfw/nf-vfw-mciwndcreatea
*/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章