MCI 是Windows提供多媒體裝置的介面。
MCI 的編程步驟 : 發送 MCI_OPEN 命令開啟裝置--->發送MCI_PLAY 命令播放裝置---->發送MCI_CLOASE
使用mciSendCommand函數可以向指定的裝置發送一個命令,mciSendCommand的定義如下
MCIERROR mciSendCommand(<br /> MCIDEVICEID IDDevice, //裝置ID<br /> UINT uMsg, //命令類型<br /> DWORD fdwCommand, //命令標誌位<br /> DWORD dwParam //命令參數<br />);<br />
下面的一個樣本 開啟 MP3檔案播放
#include "stdafx.h"<br />#include <mmsystem.h><br />#pragma comment(lib,"winmm.lib");<br />int APIENTRY WinMain(HINSTANCE hInstance,<br /> HINSTANCE hPrevInstance,<br /> LPSTR lpCmdLine,<br /> int nCmdShow)<br />{<br /> //1.開啟裝置<br />MCI_OPEN_PARMS openParms;//MCI_OPEN命令需要參數結構體<br />openParms.lpstrDeviceType="MPEGvideo";//MP3的檔案裝置ID為MPEGvideo<br />openParms.lpstrElementName="C://1.MP3";//MP3檔案的存放路徑<br />//發送命令<br />mciSendCommand(<br />NULL,//開啟裝置不需要裝置ID<br />MCI_OPEN,//MCI_OPEN,此命令表示開啟裝置<br />MCI_OPEN_ELEMENT|MCI_OPEN_TYPE|MCI_WAIT,<br />(DWORD)(LPVOID(&openParms)));//傳遞MCI_OPEN_PARMS參數<br />/*MCI_OPEN_ELEMENT 表示MCI_OPEN_PARMS的lpstrElementName有效<br /> MCI_OPEN_TYPE表示MCI_OPEN_PARMS的lpstrDeviceType有效<br /> MCI_WAIT表示命令發送後會一直等待,知道操作完成<br /> (如果是MCI_NOTIFY,則表示發送命令後會立即返回,當操作真正完畢後發出通告訊息)*/</p><p>//裝置開啟完畢,裝置ID被存放到openParms.wDeviceID中<br />WORD m_wDeviceID=openParms.wDeviceID;<br />//2、播放裝置<br />MCI_PLAY_PARMS playParms;//MCI_PLAY命令需要的參數結構體<br />mciSendCommand(<br />m_wDeviceID,//需要的裝置ID<br />MCI_PLAY,//此命令播放裝置<br />MCI_WAIT,//等待播放檔案結束,然後返回<br />(DWORD)(LPVOID(&playParms)));//傳遞MCI_PLAY_PARMS參數<br />//3,關閉裝置<br />mciSendCommand(<br />m_wDeviceID,<br />MCI_CLOSE,<br />NULL,<br />NULL);<br />return 0;<br />}</p><p>
MCI 支援的格式有限,因此用來開發播放器,會有些困難,但是在製作鬧鈴,提示音樂上還是很不錯的。