播放器编程借鉴.pdfVIP

  • 6
  • 0
  • 约1.36万字
  • 约 9页
  • 2021-10-24 发布于福建
  • 举报
附录九 简易的 MIDI/W AV/MP3 播放器 MCI(Media Control Interface) 是 Windows 提供的控制多媒体设备的高层、通用的命令接口。它提供 一组与设备无关的函数和命令, 可有效地控制多媒体设备。 使用 MCI我们可以十分容易的对多媒体进行操 作,不需要了解多媒体设备的工作原理和调用底层函数库的方法, 这样就极大的减轻了开发的难度和负担。 这里举一个 WAV/MIDI 播放器的小例子,希望以后能用到。 1. 首先建立一个基于对话框的工程 MyMCI,在对话框添加 7 个按钮,按钮 ID 分别为 ID_OPEN、 ID_PLAY、 ID_PAUSE、ID_PREVIOUS、ID_NEXT、 ID_STOP、 ID_EXIT, 另外加一个 Slider 控件。 2. 为 CMyMCIDlg类加入成员变量: CString strFileExt; DWORD dCurrentPosition; unsigned long m_dLength; bool isPause; WORD m_wDeviceID; CString strFileName; 3. 给 Slider 控件添加成员变量 m_position 4. 各个按钮的消息相应函数代码如下 void CMyMCIDlg::OnMciOpen() { // TODO: Add your control notification handler code here CFileDialog file(TRUE,,,OFN_FILEMUSTEXIST,*.mid,*.wav 及 mp3文件 |*.mid;*.wav;*.mp3| 所有文件 |*.*|); if (file.DoModal()==IDOK) { strFileName=file.GetFileName(); strFileExt=file.GetFileExt(); } this - SetWindowText( 请单击 Play 按钮 , 欣赏 +strFileName); } void CMyMCIDlg::OnMciPlay() { isPause=true; SetTimer(1,33,NULL); mciSendCommand(m_wDeviceID,MCI_CLOSE,0,NULL); MCI_OPEN_PARMS mciOpen; MCI_PLAY_PARMS mciPlay; mciOpen.lpstrElementName=strFileName.GetBuffer(strFileName.GetLength()); mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT,(DWORD)(LPVOID)mciOpen); m_wDeviceID=mciOpen.wDeviceID; MCI_STATUS_PARMS mciStatusParms; mciStatusParms.dwItem=MCI_STATUS_LENGTH; mciSendCommand(m_wDeviceID,MCI_STATUS,MCI_WAIT|MCI_STATUS_ITEM,(DWORD)(LPVOID)mciStatu sParms); m_dLength=mciStatusParms.dwReturn; mciSendCommand(m_wDeviceID,MCI_PLAY,0,(DWORD)(LPVOID)mciPlay); m_position.SetRange(0,m_dLength); m_position

文档评论(0)

1亿VIP精品文档

相关文档