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