</pre><pre name="code" class="cpp">VC2005实现的播放器http://download.csdn.net/detail/qaz2549066580/8261195 // MCI.h class MCI { public: MCI(void); ~MCI(void); public: int mciOpen(CString); //打开设备,返回打开设备的ID void mciPlay(int); //播放音乐,传递的参数为mciOpen返回的ID void mciClose(int); //关闭设备 void mciPause(int); //暂停,可用mciResume恢复播放 void mciStop(int); //停止设备 void mciResume(int); //从停止处恢复播放 void mciSetVolume(int,DWORD); //设置音量 void mciSetPos(int,DWORD); //设置播放位置 DWORD_PTR mciLength(int); //获得歌曲长度 DWORD_PTR mciPosition(int); //判断歌曲当前播放位置 private: DWORD_PTR length; }; // MCI.cpp /*包含下列头文件,使用mciSendCommand函数*/ #include "Mmsystem.h" #include "Digitalv.h" #pragma comment(lib,"Winmm.lib") int MCI::mciOpen(CString filename) { //关闭所有MCI mciSendCommand(MCI_ALL_DEVICE_ID, MCI_CLOSE, MCI_WAIT, NULL); //打开设备,并传递要播放的文件名filename MCI_OPEN_PARMS mciopen; mciopen.lpstrElementName =filename; mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT,(DWORD_PTR)(&mciopen)); return mciopen.wDeviceID; //返回已打开设备的ID } void MCI::mciPlay(int wDeviceID) { MCI_PLAY_PARMS mciplay; mciplay.dwFrom =0; //从开头播放 mciplay.dwTo =-1; mciSendCommand(wDeviceID,MCI_PLAY,MCI_NOTIFY,(DWORD_PTR)(&mciplay)); } void MCI::mciClose(int wDeviceID) { MCI_GENERIC_PARMS mciclose; mciSendCommand(wDeviceID,MCI_CLOSE,MCI_NOTIFY,(DWORD_PTR)(&mciclose)); } void MCI::mciPause(int wDeviceID) { MCI_GENERIC_PARMS mcipause; mciSendCommand(wDeviceID,MCI_PAUSE,MCI_NOTIFY,(DWORD_PTR)(&mcipause)); } void MCI::mciResume(int wDeviceID) { MCI_GENERIC_PARMS mciresume; mciSendCommand(wDeviceID,MCI_RESUME,MCI_NOTIFY,(DWORD_PTR)(&mciresume)); } void MCI::mciSetVolume(int wDeviceID, DWORD volume) { MCI_DGV_SETAUDIO_PARMS mcivolume; mcivolume.dwItem=MCI_DGV_SETAUDIO_VOLUME; mcivolume.dwValue=volume; mciSendCommand(wDeviceID,MCI_SETAUDIO,MCI_DGV_SETAUDIO_ITEM|MCI_DGV_SETAUDIO_VALUE,(DWORD_PTR)(&mcivolume)); } void MCI::mciSetPos(int wDeviceID,DWORD Pos) { MCI_SEEK_PARMS mciseek; mciseek.dwTo=Pos; mciSendCommand(wDeviceID,MCI_SEEK,MCI_TO ,(DWORD_PTR)(&mciseek)); } DWORD_PTR MCI::mciLength(int wDeviceID) { MCI_STATUS_PARMS statusParms; mciSendCommand(wDeviceID,MCI_SEEK,MCI_SEEK_TO_END,NULL); //设置歌曲当前位置为歌曲结尾 statusParms.dwItem=MCI_STATUS_POSITION; mciSendCommand(wDeviceID,MCI_STATUS,MCI_STATUS_ITEM,(DWORD_PTR)&statusParms); length=statusParms.dwReturn; mciSendCommand(wDeviceID,MCI_SEEK,MCI_SEEK_TO_START,NULL); //设置歌曲当前位置为歌曲开始 return length; } DWORD_PTR MCI::mciPosition(int wDeviceID) { MCI_STATUS_PARMS statusParms; statusParms.dwItem=MCI_STATUS_POSITION; mciSendCommand(wDeviceID,MCI_STATUS,MCI_STATUS_ITEM,(DWORD_PTR)&statusParms); return statusParms.dwReturn; }
MCI实现播放器
最新推荐文章于 2022-04-17 15:31:12 发布