VC播放mp3等音樂檔案,可以使用MCI。
對于所有的指令都是通過mciSendCommand進行發送。
InfosystemShow中的CMyMCI類是對MCI各種操作的封裝,包括打開、播放、暫停等操作,在主程式中,隻需調用
CMyMCI m_myMCI;
m_myMCI.MCIOpen("E:\\Kalimba.mp3");
m_myMCI.MCIPlay();
while(1)
{
Sleep(1000);
}
m_myMCI.MCIClose();
即可完成對音樂的播放。
//打開MCI裝置 參數為檔案位址
DWORD CMyMCI::MCIOpen(const CString &strPath)
{
MCI_OPEN_PARMS mciOP;
DWORD dwReturn;
ASSERT(m_wID==NULL);
mciOP.lpstrDeviceType=NULL;
mciOP.lpstrElementName=strPath;
dwReturn=mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT|MCI_WAIT|MCI_OPEN_SHAREABLE,
(DWORD)(LPVOID)&mciOP);
if (dwReturn==0)
{
m_wID=mciOP.wDeviceID;
if(this->MCIGetLength(&m_dwLength)!=0)
m_dwLength=0;
}
else
m_wID=NULL;
return dwReturn;
}
//關閉MCI裝置
DWORD CMyMCI::MCIClose()
MCI_GENERIC_PARMS mciGP;
dwReturn=mciSendCommand(m_wID,MCI_CLOSE,MCI_NOTIFY|MCI_WAIT,
(DWORD)(LPVOID)&mciGP);
m_wID=NULL;
//播放
DWORD CMyMCI::MCIPlay()
MCI_PLAY_PARMS mciPP;
return mciSendCommand(m_wID,MCI_PLAY,MCI_NOTIFY,
(DWORD)(LPVOID)&mciPP);