利用MCI在VC++下设计一个播放器.doc_第1页
利用MCI在VC++下设计一个播放器.doc_第2页
利用MCI在VC++下设计一个播放器.doc_第3页
利用MCI在VC++下设计一个播放器.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机与信息技术学院设计性实验报告专业: 年级/班级: 20102011学年第二学期课程名称多媒体技术指导教师本组成员学号姓名实验地点实验时间项目名称利用MCI在VC+环境下设计一个播放器实验类型设计性一、 实验目的:熟悉MCI,并能利用MCI编程在visual c+环境设计出一个音乐播放器,掌握使用高级语言进行多媒体编程的功能。二、 实验仪器或设备:一台安装有visual c+的计算机。三、 总体设计(设计原理、设计方案及流程等): 在visual c+环境下设计出一个音乐播放器的界面:具有打开、播放,前进、后退、暂停或继续、停止的功能; 修改各个控件的属性,并为其添加代码;对该音乐播放器编译-运行。四、 实验步骤(包括主要步骤、代码分析等)(一):创建MFC应用程序:打开visual c+软件,选择“文件”“新建”新建一个应用程序文档MFC AppWizardexe,将工程命名为player。(二)编辑对话框:在工作区内,设计出一个音乐播放器的界面,添加按钮控件:打开、播放,前进、后退、暂停或继续、停止,后再添加一个滑动条控件。(三)为各个控件依次添加以下对应的代码:void CMusicplayerDlg:OnBUTTONOpen() CFileDialog file(TRUE, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_FILEMUSTEXIST, Wave Audio(*.wav)|*.wav|MIDI(*.mid)|*.mid|mp3(*.mp3)|*.mp3|所有文件(*.*)|*.*|);if(file.DoModal() = IDOK)strFileName = file.GetPathName();strFileExt = file.GetFileExt();void CMusicplayerDlg:OnBUTTONPlay() bPause = TRUE; /初始化SetTimer(1, 33, NULL); /为滑动条启动定时器,频繁发送定时消息mciSendCommand(m_wDeviceID, MCI_CLOSE, NULL, NULL); /保证总是重新播放 /打开设备MCI_OPEN_PARMS mciOpen;mciOpen.lpstrElementName = strFileName.GetBuffer(strFileName.GetLength();mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT, (DWORD)&mciOpen); /发送打开相关设备的命令/检测播放总长度 m_wDeviceID = mciOpen.wDeviceID; /得到打开的设备的IDMCI_STATUS_PARMS mciStatusParms;mciStatusParms.dwItem = MCI_STATUS_LENGTH;mciSendCommand(m_wDeviceID, MCI_STATUS, MCI_WAIT|MCI_STATUS_ITEM, (DWORD)&mciStatusParms); /发送状态命令m_lLength = mciStatusParms.dwReturn;/播放设备MCI_PLAY_PARMS mciPlay;mciSendCommand(m_wDeviceID, MCI_PLAY, NULL, (DWORD)&mciPlay);/滑动还原到最左端m_pSlider-SetRange(0, m_lLength); /设置滑动条范围m_pSlider-SetPos(0); /播放时滑动条总是在最左端void CMusicplayerDlg:OnBUTTONPrevious () bPause = TRUE; /记录当前位置MCI_STATUS_PARMS mciStatusParms;mciStatusParms.dwItem = MCI_STATUS_POSITION; mciSendCommand(m_wDeviceID, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)&mciStatusParms); dCurrentPosition = mciStatusParms.dwReturn; /取得当前位置的信息MCI_PLAY_PARMS mciPlayParms;if(dCurrentPosition = (m_lLength / 16) /当前位置不足一个后退步/发送后退到文件开始点的命令mciSendCommand(m_wDeviceID, MCI_SEEK, MCI_SEEK_TO_START, NULL); mciSendCommand(m_wDeviceID, MCI_PLAY, NULL, (DWORD)&mciPlayParms);else /当前位置满足后退一步尚有余/从当前位置减小十六分之一的长度mciPlayParms.dwFrom = dCurrentPosition - (DWORD)(m_lLength / 16);/发送从指定位置开始播放的命令mciSendCommand(m_wDeviceID, MCI_PLAY, MCI_FROM, (DWORD)&mciPlayParms);void CMusicplayerDlg:OnBUTTONNext () bPause = TRUE; /记录当前位置MCI_STATUS_PARMS mciStatusParms; mciStatusParms.dwItem = MCI_STATUS_POSITION; mciSendCommand(m_wDeviceID, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)&mciStatusParms); dCurrentPosition = mciStatusParms.dwReturn; /取得当前位置的信息MCI_PLAY_PARMS mciPlayParms;if(m_lLength - dCurrentPosition) SetPos(0); /将滑动条放在最左端void CMusicplayerDlg:OnTimer(UINT nIDEvent) MCI_STATUS_PARMS mciStatusParms;mciStatusParms.dwItem = MCI_STATUS_POSITION; mciSendCommand(m_wDeviceID, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)&mciStatusParms); dCurrentPosition = mciStatusParms.dwReturn; /取得当前位置的信息m_pSlider-SetPos(dCurrentPosition); /频繁设置滑动条位置(每次定时消息一到)CDialog:OnTimer(nIDEvent);(四)编译、链接并运行程序:选择菜单栏Bulid下的compile-bulid-execute对程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论