在调用MC设备时可用 mciGetErrorString(检 测错误,该函数的原型如下: BOOL mciGetErrorString( DWoRD fdw erro,川错误代码 LPTSTRIpSzErrorText,∥指向错误内容字串的指针 UINT cch ErrorText∥错误内容的缓冲区容量
6 在调用MCI设备时可用mciGetErrorString()检 测错误,该函数的原型如下: BOOL mciGetErrorString( DWORD fdwError, //错误代码 LPTSTR lpszErrorText, //指向错误内容字串的指针 UINT cchErrorText //错误内容的缓冲区容量 )
例12-2】编写一个音频播放器程序,可以选 择音频文件,并控制其播放、暂停播放、暂 停后的继续播放以及停止播放的功能 f iplAyer IDC OPEN BUTTON DC CLOSE BUTTON 打开文件 关闭文件 IDC_ START_BUTTON IDC_PAUSE_BUTTON IDC STOP BUTTON 播放 暂停/继续 停止 IDC EXIT BUTTON 退出
7 【例12-2】编写一个音频播放器程序,可以选 择音频文件,并控制其播放、暂停播放、暂 停后的继续播放以及停止播放的功能 IDC_OPEN_BUTTON IDC_CLOSE_BUTTON IDC_START_BUTTON IDC_PAUSE_BUTTON IDC_STOP_BUTTON IDC_EXIT_BUTTON
1将头文件 mmsystem. h加入到文件 Stdafx h中, 将多媒体函数库wnmm通过 project菜单中的 setings命令来与程序链接起来 2在cMc| PlayerDlg类上增加 Protecte类型的成员变量, 具体如下: BOOL m_ Sign(作为判断正在播放的标识) BOOL m Asign(作为判断正在播放的标识) DWORD dwError(用来储存错误代码) MCIDEVICEID m MC/DeviceD(用来储存打开设备的D值) charszErrorBufMAXERRORLENGTH)(用来信存出错内容)
8 1. 将头文件mmsystem.h加入到文件Stdafx.h中, 将多媒体函数库winmm.lib通过project菜单中的 seetings命令来与程序链接起来 2.在CMCIPlayerDlg类上增加Protected类型的成员变量, 具体如下: BOOL m_PSign(作为判断正在播放的标识) BOOL m_ASign(作为判断正在播放的标识)、 DWORD dwError(用来储存错误代码)、 MCIDEVICEID m_MCIDeviceID(用来储存打开设备的ID值) charszErrorBuf[MAXERRORLENGTH](用来储存出错内容)
BOOL CMCIPlayerDlg: OnInitDialogo t CDialog: OnInitDialog 0 II TODO: Add extra initialization here m_SIgn= FALSE;∥初始化正在播放标识 m_ ASign= FALSE;∥初始化正在暂停标识 m MC DeviceD=0;∥初始化设备标识 eturn TrUe
9 BOOL CMCIPlayerDlg::OnInitDialog() { CDialog::OnInitDialog(); … // TODO: Add extra initialization here m_PSign=FALSE; //初始化正在播放标识 m_ASign=FALSE; //初始化正在暂停标识 m_MCIDeviceID=0; //初始化设备标识 return TRUE; }
void cMc| PlayerDIg: OnOpen Button0打开一个文件 CString filename;∥定义 CString类的 ilename用来存文件名 CString fileext;∥定义 CString类的 iileext用来存文件力展名 MCI_OPEN_PARMS mciOpenParms;/义结构体变量用来存储打 开文件的信息和返回的设备标识信息 DWORd dwError;∥定义 dwErro用来储存返回的错误标识 static char szFilterl="波形音频文件Wa训 wavED序列mo*md0 CFileDialog dg(TRUE, NULL, NULL, OFN_HIDEREADONLYOFN_OVERWRITEPROMPTszFilter) ∥过打开按纽的显示的内容
10 void CMCIPlayerDlg::OnOpenButton() //打开一个文件 { CString filename; //定义CString类的filename用来存储文件名 CString fileext; //定义CString类的fileext用来存储文件扩展名 MCI_OPEN_PARMS mciOpenParms;//定义结构体变量用来存储打 开文件的信息和返回的设备标识信息 DWORD dwError; //定义dwError用来储存返回的错误标识 static char szFilter[]="波形音频文件(*.wav)|*.wav|MIDI序列(*.mid)|*.mid\0"; CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter); //通过打开按钮时显示的内容