天天看點

VC用MCI播放mp3等音樂檔案

 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);

繼續閱讀