1、所使用的类,如下:
/
//播放音乐类
/
class CPlayWave
{
protected:
MCIDEVICEID m_DeviceID;
public:
MCIDEVICEID m_ElementID;
public:
CPlayWave()
{
m_DeviceID = 0;
m_ElementID = 0;
InitDevice();
}
~CPlayWave()
{
if(m_ElementID)
Stop();
if(m_DeviceID)
TerminalDevice();
}
DWORD InitDevice() //初始化设备
{
DWORD dwResult = 0;
if (m_DeviceID == 0)
{
MCI_OPEN_PARMS mciInitParms;
mciInitParms.lpstrDeviceType=(LPSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;
dwResult = mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_WAIT,
(DWORD)(LPVOID)&mciInitParms);
m_DeviceID = mciInitParms.wDeviceID;
}
return dwResult;
}
DWORD TerminalDevice()
{
DWORD dwResult = 0;
if (m_DeviceID)
{
dwResult = mciSendCommand(m_DeviceID,MCI_CLOSE,NULL,NULL);
}
m_DeviceID = 0;
return dwResult;
}
DWORD Play(HWND hWnd,LPCSTR pFileName)
{
MCI_OPEN_PARMS mciOpenParms;
memset(&mciOpenParms,0,sizeof(MCI_OPEN_PARMS));
mciOpenParms.lpstrElementName=pFileName;
DWORD dwResult = 0;
dwResult = mciSendCommand(m_DeviceID,MCI_OPEN,MCI_OPEN_ELEMENT,
(DWORD)(LPVOID)&mciOpenParms);
if(!dwResult)
{
m_ElementID=mciOpenParms.wDeviceID;
MCI_PLAY_PARMS mciPlayParms;
mciPlayParms.dwCallback=(DWORD)hWnd;
dwResult=mciSendCommand(m_ElementID,MCI_PLAY,
MCI_NOTIFY,(DWORD)(LPVOID)&mciPlayParms);
}
return dwResult;
}
DWORD Stop()
{
DWORD dwResult=0;
if(m_ElementID)
{
dwResult=mciSendCommand(m_ElementID,MCI_CLOSE,NULL,NULL);
m_ElementID=0;
}
return dwResult;
}
};
///
2、在 Project -Setting 中 Links 页里面的Object/libray modules: 文本框中
加入winmm.lib 或 mmc.lib 或者什么其它的关于多媒体方面的一个库文件。
3、调用时:
CPlayWave Wave;
CString MediaName =(char*)(_bstr_t)m_pRecordset->GetCollect("音频");
Wave.Stop();
Wave.Play(m_hWnd,MediaName);