#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
*/