资源描述:
《利用MCI在VC++下设计一个播放器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、计算机与信息技术学院设计性实验报告专业:年级/班级:2010—2011学年第二学期课程名称多媒体技术指导教师本组成员学号姓名实验地点实验时间项目名称利用MCI在VC++环境下设计一个播放器实验类型设计性一、实验目的:熟悉MCI,并能利用MCI编程在visualc++环境设计出一个音乐播放器,掌握使用高级语言进行多媒体编程的功能。二、实验仪器或设备:一台安装有visualc++的计算机。三、总体设计(设计原理、设计方案及流程等):①在visualc++环境下设计出一个音乐播放器的界面:具有打开、播放,前进、后退、暂停或继续、停止的功能;②修改各个控件的属性,并为其添加代码;③对该音乐
2、播放器编译--运行。四、实验步骤(包括主要步骤、代码分析等)(一):创建MFC应用程序:打开visualc++软件,选择“文件”—“新建”新建一个应用程序文档MFCAppWizard[exe],将工程命名为player。(二)编辑对话框:在工作区内,设计出一个音乐播放器的界面,添加按钮控件:打开、播放,前进、后退、暂停或继续、停止,后再添加一个滑动条控件。(三)为各个控件依次添加以下对应的代码:voidCMusicplayerDlg::OnBUTTONOpen(){CFileDialogfile(TRUE,"","",OFN_HIDEREADONLY
3、OFN_OVERWRITEPR
4、OMPT
5、OFN_FILEMUSTEXIST,"WaveAudio(*.wav)
6、*.wav
7、MIDI(*.mid)
8、*.mid
9、mp3(*.mp3)
10、*.mp3
11、所有文件(*.*)
12、*.*
13、");if(file.DoModal()==IDOK){strFileName=file.GetPathName();strFileExt=file.GetFileExt();}}voidCMusicplayerDlg::OnBUTTONPlay(){bPause=TRUE;//初始化SetTimer(1,33,NULL);//为滑动条启动定时器,频繁发送定时消息mciSendCommand(
14、m_wDeviceID,MCI_CLOSE,NULL,NULL);//保证总是重新播放//打开设备MCI_OPEN_PARMSmciOpen;mciOpen.lpstrElementName=strFileName.GetBuffer(strFileName.GetLength());mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT,(DWORD)&mciOpen);//发送打开相关设备的命令//检测播放总长度m_wDeviceID=mciOpen.wDeviceID;//得到打开的设备的IDMCI_STATUS_PARMSmciStatu
15、sParms;mciStatusParms.dwItem=MCI_STATUS_LENGTH;mciSendCommand(m_wDeviceID,MCI_STATUS,MCI_WAIT
16、MCI_STATUS_ITEM,(DWORD)&mciStatusParms);//发送状态命令m_lLength=mciStatusParms.dwReturn;//播放设备MCI_PLAY_PARMSmciPlay;mciSendCommand(m_wDeviceID,MCI_PLAY,NULL,(DWORD)&mciPlay);//滑动还原到最左端m_pSlider->SetRange(0,
17、m_lLength);//设置滑动条范围m_pSlider->SetPos(0);//播放时滑动条总是在最左端}voidCMusicplayerDlg::OnBUTTONPrevious(){bPause=TRUE;//记录当前位置MCI_STATUS_PARMSmciStatusParms;mciStatusParms.dwItem=MCI_STATUS_POSITION;mciSendCommand(m_wDeviceID,MCI_STATUS,MCI_STATUS_ITEM,(DWORD)&mciStatusParms);dCurrentPosition=mciStatusP
18、arms.dwReturn;//取得当前位置的信息MCI_PLAY_PARMSmciPlayParms;if(dCurrentPosition<=(m_lLength/16))//当前位置不足一个后退步{//发送后退到文件开始点的命令mciSendCommand(m_wDeviceID,MCI_SEEK,MCI_SEEK_TO_START,NULL);mciSendCommand(m_wDeviceID,MCI_PLAY,NULL,(DWORD)&mciPlayPar