MCI 播放mp3 音频文件例程 源文件中需要包含头文件 Mmsystem.h,在Project->Settings->Link->Object/libray module 中加入库 Winmm.lib。或添加代码#pragma comment(lib, "winmm.lib") MCI_OPEN_PARMS op; void CMCIDlg::OnPlay() { // TODO: Add your control notification handler code here DWORD cdlen;//音频文件长度 op.dwCallback=NULL; op.lpstrAlias=NULL; op.lpstrDeviceType=_T("MPEGAudio"); //设备类型,大多数文件可以这样设置 op.lpstrElementName=_T("D:\\2.mp3C:\Documents and Settings\All Users\Documents\My Music\示例音乐"); //文件路径 op.wDeviceID=NULL; //打开设备成功以后保存这个设备号备用 UINT rs; //接受函数返回结果 //发送命令打开设备,成功返回 0,否则返回错误号,第三个参数这里必须 MCI_OPEN_ELEMENT rs=mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT,(DWORD)&op); mciSendCommand(op.wDeviceID,MCI_PLAY,MCI_NOTIFY,(DWORD)&pp); mciSendCommand(NULL,MCI_SET,MCI_SET_DOOR_OPEN,NULL); cdlen=getinfo(op.wDeviceID,MCI_STATUS_LENGTH);//获取音频文件长度 if(rs==0) //设备打开成功就播放文件 { MCI_PLAY_PARMS pp; pp.dwCallback=NULL; pp.dwFrom=0; //开始播放的位置 mciSendCommand(op.wDeviceID,MCI_PLAY,MCI_NOTIFY,(DWORD)&pp); //播放文件,如果第三个参数设为MCI_WAIT 则程序窗口会被阻塞,为了避免这种情况可以设为MCI_NOTIFY } Sleep(cdlen);//根据文件长度等待,与MCI_WAIT 效果一样,cdlen参数可以控制播放时间 OnStop(); //关闭音频文件 } DWORD CMCIDlg::getinfo(UINT wDeviceID,DWORD item) { MCI_STATUS_PARMS mcistatusparms; mcistatusparms.dwCallback=(DWORD)GetSafeHwnd(); mcistatusparms.dwItem=item; mcistatusparms.dwReturn=0; mciSendCommand(wDeviceID,MCI_STATUS,MCI_STATUS_ITEM,(DWORD)&mcistatusparms); return mcistatusparms.dwReturn; } void CMCIDlg::OnStop() { // TODO: Add your control notification handler code here //在WM_CLOSE 消息处理过程中发送 MCI_CLOSE 命令关闭设备 MCI_GENERIC_PARMS gp; gp.dwCallback=NULL; mciSendCommand(op.wDeviceID,MCI_CLOSE,MCI_WAIT,(DWORD)&gp); } ========================================================...