资源描述:
《多媒体作业音乐播放器的制作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机与信息技术学院设计性实验报告专业:计算机科学与技术年级/班级:08级计科一班2010—2011学年第二学期课程名称多媒体技术指导教师曹西征本组成员学号姓名0808114086李志欣实验地点215机房实验时间2011.5.16项目名称利用MCI在VC++环境下设计一个播放器实验类型设计性一、实验目的(1)掌握用VisualC++6.0开发环境开发软件的方法(2)掌握MFC应用程序的结构,熟悉对话框的应用和有关编程方法(3)掌握用资源编辑器进行图标、选单、工具栏、对话框等资源的编辑二、实验仪器或设备学院提供公共机房,1台/学生。计算机安装有
2、VC++程序设计软件三、总体设计(设计原理、设计方案及流程等)方案:创建一个MFC对话框实现下列功能:能够打开文件(.wav.mp3.mid等格式)、能够播放、快进、暂停继续、停止,并且要求有进度条显示播放进度。流程:(1)创建MFC对话框应用程序(2)添加控件并设置相应属性(3)为相应的控件添加代码(4)编译、调试运行程序四、实验步骤(包括主要步骤、代码分析等)(1)、创建名为Zhangyue的MFC对话框应用程序,删除对话框中所有控件,然后添加如下表所示的控件(及其相关设置)。控件类型ID标题按钮IDC_BUTTON_Open打开按
3、钮IDC_BUTTON_Play播放按钮IDC_BUTTON_Previous后退按钮IDC_BUTTON_Next前进按钮IDC_BUTTON_PauRes暂停/继续按钮IDC_BUTTON_Stop停止进度条IDC_SLIDER(2)为按钮添加消息处理函数并添加代码:5打开:(用于打开文件)voidCMyDlg::OnBUTTONOpen(){//TODO:AddyourcontrolnotificationhandlercodehereCFileDialogfile(TRUE,"","",OFN_HIDEREADONLY
4、OFN_OVE
5、RWRITEPROMPT
6、OFN_FILEMUSTEXIST,"mp3(*.mp3)
7、*.mp3
8、MIDI(*.mid)
9、*.mid
10、WaveAudio(*.wav)
11、*.wav
12、所有文件(*.*)
13、*.*
14、");if(file.DoModal()==IDOK){strFileName=file.GetPathName();strFileExt=file.GetFileExt();SetDlgItemText(IDC_TEXT,strFileName);}}播放:(播放打开的文件)voidCMyDlg::OnBUTTONPlay(){//TO
15、DO:AddyourcontrolnotificationhandlercodeherebPause=TRUE;//初始化SetTimer(1,33,NULL);//为滑动条启动定时器,频繁发送定时消息mciSendCommand(m_wDeviceID,MCI_CLOSE,NULL,NULL);//保证总是重新播放//打开设备MCI_OPEN_PARMSmciOpen;mciOpen.lpstrElementName=strFileName.GetBuffer(strFileName.GetLength());mciSendCommand(
16、NULL,MCI_OPEN,MCI_OPEN_ELEMENT,(DWORD)&mciOpen);//发送打开相关设备的命令//检测播放总长度m_wDeviceID=mciOpen.wDeviceID;//得到打开的设备的IDMCI_STATUS_PARMSmciStatusParms;mciStatusParms.dwItem=MCI_STATUS_LENGTH;mciSendCommand(m_wDeviceID,MCI_STATUS,MCI_WAIT
17、MCI_STATUS_ITEM,(DWORD)&mciStatusParms);//发送
18、状态命令m_lLength=mciStatusParms.dwReturn;//播放设备MCI_PLAY_PARMSmciPlay;mciSendCommand(m_wDeviceID,MCI_PLAY,NULL,(DWORD)&mciPlay);//滑动还原到最左端m_pSlider->SetRange(0,m_lLength);//设置滑动条范围m_pSlider->SetPos(0);//播放时滑动条总是在最左端}后退:(后退播放)5voidCMyDlg::OnBUTTONPrevious(){//TODO:Addyourcontrol
19、notificationhandlercodeherebPause=TRUE;//记录当前位置MCI_STATUS_PARMSmciStatusParms;mciS