




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学 号: 课 程 设 计课程名称可视化编程(VC)学 院计算机科学与技术学院专 业软件工程班 级姓 名指导教师岑 丽20212021学年 第2学期目 录 TOC o 1-3 h z u HYPERLINK l _Toc12083 1 课程设计要求 PAGEREF _Toc12083 1 HYPERLINK l _Toc25962 2 系统的简单操作及功能说明 PAGEREF _Toc25962 1 HYPERLINK l _Toc11565 2.1 系统简单操作 PAGEREF _Toc11565 1 HYPERLINK l _Toc25373 2.2 功能说明 PAGEREF _Toc253
2、73 2 HYPERLINK l _Toc29783 3 所设计系统实现的各模块介绍 PAGEREF _Toc29783 3 HYPERLINK l _Toc22392 3.1 流程图设计 PAGEREF _Toc22392 3 HYPERLINK l _Toc6619 3.2 各模块介绍 PAGEREF _Toc6619 3 HYPERLINK l _Toc16082 4 各模块源程序及对源程序主要局部的相应注释说明 PAGEREF _Toc16082 4 HYPERLINK l _Toc15676 4.1 播放控制 PAGEREF _Toc15676 4 HYPERLINK l _Toc9
3、475 4.2 播放模式 PAGEREF _Toc9475 5 HYPERLINK l _Toc970 4.3 播放列表 PAGEREF _Toc970 8 HYPERLINK l _Toc10125 4.4 播放界面 PAGEREF _Toc10125 9 HYPERLINK l _Toc13488 5 运行结果界面截图 PAGEREF _Toc13488 12 HYPERLINK l _Toc14834 5.1 初始界面 PAGEREF _Toc14834 12 HYPERLINK l _Toc8799 5.2 添加文件 PAGEREF _Toc8799 13 HYPERLINK l _T
4、oc17904 5.3 播放音频 PAGEREF _Toc17904 13 HYPERLINK l _Toc13413 5.3 播放视频 PAGEREF _Toc13413 14 HYPERLINK l _Toc20215 6 程序设计问题与总结 PAGEREF _Toc20215 15 HYPERLINK l _Toc15604 6.1 设计中遇到的问题及相应的解决方法和解决过程 PAGEREF _Toc15604 15 HYPERLINK l _Toc13244 6.2 个人总结 PAGEREF _Toc13244 17 HYPERLINK l _Toc24481 参考文献 PAGEREF
5、 _Toc24481 181 课程设计要求学生姓名:_ 专业班级: 指导教师: 岑丽 工作单位:计算机科学与技术学院 题 目: 基于MFC的多媒体播放器系统实现制作一个具有自己设计风格的媒体播放器。要求能随机选取要播放的文件,实现前进,回退,暂停,循环播放,音量大小调节等根本功能。要求能播放多种格式至少四种或四种以上的音频视频格式文件。 可以实现其它附加功能(不在要求范围之内)界面良好,功能完善2 系统的简单操作及功能说明 2.1 系统简单操作播放文件按钮 当用户想要翻开某个播放文件时,只要选中播放列表中的需要播放的文件,再单击播放文件按钮,该文件就会进行播放。再次单击播放文件按钮,那么播放暂
6、停;添加文件按钮当用户想添加播放文件到播放列表时,可以单击添加文件按钮,选定需要播放的文件的路径并翻开,那么选定的文件将被添加到播放列表中;列表/单一循环按钮当用户单击列表/单一循环按钮时,播放模式会切换到会转变到相应的模式下;上一首/下一首按钮当用户单击该按钮时,播放的文件相应变化;播放进度滑块滑块当文件正在进行播放时,用户可以通过滑动播放进度滑块进行对播放进程的控制,实现音频视频文件播放的快进和快退;音量调节滑块用户可以通过对音量调节滑块进行调节从而控制音量的大小;停止播放按钮单击该按钮,停止播放;退出程序按钮当用户对播放器操作完成后可以通过单击退出程序按钮从播放器中退出,退出程序后播放列
7、表将自动清空。2.2 功能说明 本次的课程设计是利用MFC类库,结合ActiveX控件资源开发一款简单而实用的多媒体播放软件Multimedia player播放器。Multimedia player播放器主要对常用音频及视频格式的文件实现以下功能:能随机选取要播放的音频或视频文件播放控制:播放/暂停、停止、退出,列表循环、单一循环等;显示播放进度及播放菜单;音量大小调节;播放多种格式*.mp3,*.wma,*.wav,*.avi,*.mov的音频视频文件;控制播放进度和播放模式。3 所设计系统实现的各模块介绍3.1 流程图设计3.2 各模块介绍 本多媒体播放系统从界面上看分为四个局部:播放控
8、制、播放模式、播放列表,播放界面。播放控制:主要包括媒体文件的播放、暂停、停止和程序的退出;播放模式:包括列表循环、单一播放、上下选择三种模式。用户通过对这三种模式的选择来控制音频视频的播放顺序;播放列表:播放列表记录了被用户添加的需要播放的文件,方便用户在添加文件之后可以迅速找到需要播放的文件;播放界面:音频的频谱和视频都会显示在播放界面上,播放界面还可以方便用户调整播放进度、音量大小,也能对音频和视频进行播放和暂停的控制。 4 各模块源程序及对源程序主要局部的相应注释说明4.1 播放控制播放/暂停媒体文件void CMy2Dlg:OnPause() / TODO: Add your con
9、trol notification handler code here/static bool i=true;if(i)i=false; m_wj.GetControls().pause();m_pause.SetWindowText(播放);KillTimer(TIMER1);elsei=true; m_wj.GetControls().play();m_pause.SetWindowText(暂停); SetTimer(TIMER1,100,0);停止播放当文件还未播完时,单击停止按钮时,调用文件停止函数Onstop(),系统回到初始状态。具体如下:void CMy2Dlg:OnStop(
10、) / TODO: Add your control notification handler code hereKillTimer(TIMER1);m_wj.GetControls().stop();m_pause.SetWindowText(播放);i=false;退出系统void CMy2Dlg:OnClose() / TODO: Add your control notification handler code hereKillTimer(TIMER1);DestroyWindow();4.2 播放模式循环播放功能 在函数OnState() 中输入以下代码。void CMy2Dlg:
11、OnState() / TODO: Add your control notification handler code hereif(s)m_state.SetWindowText(单一循环);s=false;elsem_state.SetWindowText(列表循环);s=true;选择上/下一个文件void CMy2Dlg:OnReverse() / TODO: Add your control notification handler code hereif(k)POSITION pos = m_list.GetFirstSelectedItemPosition();Item = m
12、_list.GetNextSelectedItem(pos);m_list1.InsertItem(0,fileNameItem-1);m_list.SetItemText(0,1,NULL);if(Item!=0)pathNameItem-1.MakeUpper();m_wj.SetUrl(pathNameItem-1); m_wj.GetControls().play();if(Item=0)pathNameItem.MakeUpper();m_wj.SetUrl(pathNameItem); m_wj.GetControls().play();k=false;if(Item0)Item-
13、;if(Item=0)m_list1.InsertItem(0,fileName0);m_list.SetItemText(0,1,NULL);void CMy2Dlg:OnForward() / TODO: Add your control notification handler code hereif(k)POSITION pos = m_list.GetFirstSelectedItemPosition();Item = m_list.GetNextSelectedItem(pos);m_list1.InsertItem(0,fileNameItem+1);m_list.SetItem
14、Text(0,1,NULL);pathNameItem+1.MakeUpper();m_wj.SetUrl(pathNameItem+1); m_wj.GetControls().play();k=false;if(Itemj-1)Item+;if(Item=j-1)m_list1.InsertItem(0,fileNameItem);m_list.SetItemText(0,1,NULL);4.3 播放列表添加文件到列表void CMy2Dlg:OnOpen() /添加文件到列表/ TODO: Add your control notification handler code herem_
15、slider.SetPos(0);char szFileFilter= Available File (*.*)|*.*|/五种音频视频格式类型Mp3 File(*.mp3)|*.mp3|/音频Wma File(*.wma)|*.wma|/音频Wave File(*.wav)|*.wav|/音频AVI File(*.avi)|*.avi|/视频Movie File(*.mov)|*.mov|;/视频/可以播放mp3、wma、avi、wav、mov格式的文件CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);if(dlg.D
16、oModal()=IDOK)CString PathName=dlg.GetPathName();pathNamej=dlg.GetPathName();fileNamej=dlg.GetFileName();PathName.MakeUpper();m_wj.SetUrl(PathName); int nItem=m_list.InsertItem(j,dlg.GetFileName(); m_list.SetItemText(nItem,1,NULL);m_list1.InsertItem(0,dlg.GetFileName();m_list.SetItemText(0,1,NULL);j
17、+;Item+;4.4 播放界面播放进度显示媒体文件在播放时的同时可以显示对应的进度,通过鼠标拖动滑块,实现快进快退功能。void CMy2Dlg:OnOutofmemorySlider2(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code here*pResult = 0;void CMy2Dlg:OnTimer(UINT nIDEvent) / TODO: Add your message handler code here and/or call defaultstatic
18、 r=10,g=0,b=10;if(r250)r=r+10;else r=150;if(g250)g=g+15;else g=5;if(b250)b=b+20;else b=150;m_list1.SetTextColor(RGB(r,g,b);m_list1.Invalidate();/m_list1.UpdateWindow();static int t=0;double position=m_slider.GetPos();double len=m_wj.GetCurrentMedia().GetDuration(); double L=m_wj.GetControls().GetCur
19、rentPosition();m_slider.SetPos(int(L*100/len);if(position=99&s) t+;if(t=2)if(k&m)POSITION pos = m_list.GetFirstSelectedItemPosition();Item = m_list.GetNextSelectedItem(pos);if(Item=j-1)Item=-1;m_list1.InsertItem(0,fileNameItem+1);m_list.SetItemText(0,1,NULL);pathNameItem+1.MakeUpper();m_wj.SetUrl(pa
20、thNameItem+1);if(Itemj-1)Item+;/if(Item=j-1)/Item=-1;m=false;t=0;m_wj.GetControls().play();CDialog:OnTimer(nIDEvent);音量调节 单击窗口水平滚动条,调节音量上下。void CMy2Dlg:OnOutofmemorySlider1(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code here*pResult = 0;void CMy2Dlg:OnHScroll(UIN
21、T nSBCode, UINT nPos, CScrollBar* pScrollBar) / TODO: Add your message handler code here and/or call defaultCSliderCtrl *Slider=(CSliderCtrl*) pScrollBar;if(Slider=&m_Slider)long position=m_Slider.GetPos(); m_wj.GetSettings().SetVolume(position);if(Slider=&m_slider)double len=m_wj.GetCurrentMedia().
22、GetDuration(); KillTimer(TIMER1); double position=m_slider.GetPos();m_wj.GetControls().SetCurrentPosition(position/100)*len); m_wj.GetControls().play();SetTimer(TIMER1,100,0);CDialog:OnHScroll(nSBCode, nPos, pScrollBar);5 运行结果界面截图5.1 初始界面5.2 添加文件5.3 播放音频5.3 播放视频6 程序设计问题与总结6.1 设计中遇到的问题及相应的解决方法和解决过程第一
23、次制作多媒体播放器,按钮的功能总是出现问题,写完的代码总是报错,无法实现按钮的功能。最后向同学请教,明白原因是改变了按钮的属性之后没有建立按钮的类向导,导致出现问题。解决的方法就是,在改变按钮的属性后立刻为按钮建立类向导,并在规定的位置填写实现按钮功能的代码。为系统添加背景图失败,在编译运行的时候会报错。这个问题是由于添加背景图的代码填写位置不对。原本我填这段代码的时候直接把代码放在了整个代码的最后,通过查找资料得知本段代码应该填在OnPaint消息的else中,填写完成后重新编译运行,那么相应的图片就会显示为播放器的背景图;待解决小问题一开始设置音量图标,通过界面不断的优化,觉得这个图标不适宜,但是新的图标文件添加到Icon中,组建的时候总显示错误。6.2 个人总结关于课设这次课程设计我做了多媒体播放器的设计,除了前文所述也就是最终的那些功能,其实有想过实现音频文件歌词的同步播放功能,但是由于很多问题无法解决就放弃了。查阅过很多资料,上网,整天的呆在图书馆,不断的出错,不断的修改完善,虽然最终的系统功能可能有点简单,界面不够好看,但用自己做的小应用播放音乐视频,还是很开心,觉得自己这几天的付出也值了。感悟当然,更重要的是,这次课设,确实锻炼了我的实际运用能力,加深了我对VC+这门
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省汕头市潮南实验学校2025届高考化学一模试卷含解析
- 2025届陕西省西安市西北工业大学高考适应性考试化学试卷含解析
- 急危重症病人管理
- 广东省肇庆第四中学2025届高三下学期联考化学试题含解析
- 2025年飞机空调车ACM项目合作计划书
- 2025届甘肃省天水市清水县第四中学高三第二次模拟考试化学试卷含解析
- 做自己和他人的“安全卫士”倡议书
- 心理信息融合课件
- 天津市五校2025届高考冲刺化学模拟试题含解析
- 中考数学高频考点专项练习:专题14 考点29 多边形和平行四边形及答案
- 楼梯踏步抹灰标准合同7篇
- 【厦门大学】DeepSeek大模型赋能高校教学和科研
- 巧手包出小混沌(课件)三年级下册劳动人民版
- 2025-2030中国IC卡读写器行业市场现状分析及竞争格局与投资发展研究报告
- 2024-2025学年人教版初中地理七年级下册课件 第8章 第4节 俄罗斯
- 2025年南京秦淮区一中七年级下3月份月考英语试卷
- 2025届高三化学二轮复习 化学工艺流程 课件
- 2024广东深圳市龙岗区产服集团“春雨”第二批招聘笔试笔试参考题库附带答案详解
- 2025年河南经贸职业学院单招职业适应性测试题库带答案
- 苏教版六年级数学下册第4单元第9课《练习八》课件
- 2025风电机组大型叶片全过程质量认证
评论
0/150
提交评论