最近这几天,买了张Jackson的CD碟子,每次放进去的时候,winamp就跳了出来播放。所以萌发了自己写个CD播放器的想法,说干就干。let's go...
编写媒体工具最经常要用到的就是mciSendString()和mciSendCommand()这2个函数了,虽然mciSendCommand()比前者的命令多了很多,但是使用起来更灵活一些,所以我选用了这个函数。
要打开一个媒体设备可以这样:
MCI_OPEN_PARMS OpenParms;
OpenParms.lpstrDeviceType = (LPCSTR) MCI_DEVTYPE_CD_AUDIO;
OpenParms.wDeviceID = 0;
::mciSendCommand (NULL, MCI_OPEN, MCI_WAIT | MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_SHAREABLE, (DWORD)(LPVOID) &OpenParms);
MCI_SET_PARMS SetParms;
SetParms.dwTimeFormat = MCI_FORMAT_TMSF;
::mciSendCommand(m_wDeviceID, MCI_SET, MCI_WAIT | MCI_SET_TIME_FORMAT, (DWORD)(LPVOID) &SetParms);
::mciSendCommand(m_wDeviceID, MCI_SEEK, MCI_SEEK_TO_START, NULL);
当然这些是简化过的代码,你还是得加比较多的检查,比如打开是否成功检查,设置时间参数格式是否正确,等等。由于mciSendCommand()中涉及的命令众多,初学者可能会感觉到恐惧,不过不用担心,有msdn的话,你慢慢看就行了。我们都是菜鸟,学的东西太多了!
在mciSendCommand()中已经有很多的命令你拿来就可以用的了,比如在mciSendCommand()的第二个参数设置为MCI_PLAY,MCI_PAUSE,MCI_STOP,则分别是播放cd,暂停播放cd和停止播放cd,等等。
下面是我写的一个很简单的cd播放器,让喜欢多媒体编程的vc爱好者有个大概的了解。
代码中包含了一个cd播放类,还有一个就是按钮派生类(CFXButton),读者可以直接使用。
cd播放器图如下:
文件下载: 点击下载 [120KB],[rar格式,下载 Winrar300sc ]