DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 VC播放mp3等音乐文件,可以使用MCI。
MCI ( Media Control Interface ) ,即媒体控制接口,向基于Windows操作系统的应用程序提供了高层次的控制媒体设备接口的能力。
    对于所有的命令都是通过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;
  DWORD dwReturn;
  dwReturn=mciSendCommand(m_wID,MCI_CLOSE,MCI_NOTIFY|MCI_WAIT,
      (DWORD)(LPVOID)&mciGP);
  m_wID=NULL;
  return dwReturn;
}
//播放
DWORD CMyMCI::MCIPlay()
{
    MCI_PLAY_PARMS mciPP;
    return mciSendCommand(m_wID,MCI_PLAY,MCI_NOTIFY,
        (DWORD)(LPVOID)&mciPP);
}

posted on 2017-05-23 16:33  DoubleLi  阅读(373)  评论(0编辑  收藏  举报