2022年多媒体播放器_课程设计报告-复制 .pdf
-
资源ID:30548557
资源大小:346.90KB
全文页数:14页
- 资源格式: PDF
下载积分:4.3金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2022年多媒体播放器_课程设计报告-复制 .pdf
第页(设计标题)多媒体播放器用户签名: 开发成员:孟凡林开发时间:201012-23 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - 第页目录0 引言. 41 工作计划 . 41.1 主要工作阶段划分 . 41.2 工作任务分工 . 42 需求分析 . 42.1 概述 . 42.2 用户分析 . 52.3 约束条件 . 52.4 功能需求 . 52.5 用户界面需求 . 53 设计与实现 . 53.1 概述 . 53.2 详细设计 . 63.1.1 类的抽象及设计 . 63.3 主要程序文件 . 63.4 开发环境以及部署环境要求. 73.5 主要源码 . 7名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 第页4 测试 . 114.1 概述 . 114.2 测试环境 . 114.3 测试计划 . 114.4 测试项目及结果 . 115、工作总结 . 125.1 工作成果 . 125.2 过程分析 . 135.3 经验教训及其分析 . 13名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - 第页0 引言现在人们娱乐的方式多种多样,已经有了很明显的变化,以前的户外运动现在已经在锐减,换而之的是网络游戏与网上聊天,而在同时听听音乐看看电影也成为了巨大的需求,所以很多多媒体播放软件出现了,形形色色各种都有,而我也赶下时髦,体验一下编写的过程,现在才发现这并不难,重要的是插件的插入,而其他的功能实现只需调用相应函数就行了!1 工作计划1.1 主要工作阶段划分12 月 2021 搜索相关资料,学习基础知识,大致设计框架12 月 2223 考虑所用到的数据结构,函数及其作用,做较为细致的分析12 月 24 日设计开始,仔细设计!12 月 26 写报告(用表格或图表的形式列出你们小组各个阶段的时间进度大致安排)1.2 工作任务分工阶段名称任务名称任务描述负责人协助人1234 全部编写软件孟凡林孟凡林2 需求分析2.1 概述1)到网上或图书馆查找相关系统函数实现相应的功能;2)使用 MFC 构建相应的用户界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - - - - 第页2.2 用户分析1)要求有稳定的性能,可实现要求的功能;2)拥有较好的界面,很方便人操作!2.3 约束条件(作为开发人员的, 通常你的小组的工作时间和人员是一个明显约束;另外站在用户的角度,他们对你有什么约束要求,请从这两个角度进行陈述。)2.4 功能需求能够打开文件放进播放列表,点击播放键使其播放,暂停键暂停,停止键停止,重播键重新播放,全屏键全屏播放,退出键退出程序,增大键增大音量,减小键减小音量!2.5 用户界面需求3 设计与实现3.1 概述使用 MFC 构建相应的用户界面,实现相应的功能- 能够打开文件放进播放列表,点击播放键使其播放,暂停键暂停,停止键停止,重播键重新播放,全屏键全屏播放,退出键退名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - 第页出程序,增大键增大音量,减小键减小音量,然后向其中加入各个函数实现相应的功能!3.2 详细设计3.1.1 类的抽象及设计1)控件active movie3 类,主要用来播放各种类型的文件,其封装的各种成员函数使其成为MFC 设计播放器必不可少的控件类;2)对话框基类cDlg 类,及其派生类:(a)控件repeatbtn 类,作为播放器打开文件的消息响应媒介,能够做到被点击时再次播放打开的文件 ; (b)控件 copenbtn 类,作为播放器打开文件的消息响应媒介,能够做到被点击时提供资源管理器供用户选择文件;(c)控件 playbtn 类,作为播放器打开文件的消息响应媒介,能够做到被点击时播放打开的文件;(d)控件pausebtn 类,作为播放器打开文件的消息响应媒介,能够做到被点击时暂停播放打开的文件;(e)控件 lowerbtn 类,作为播放器打开文件的消息响应媒介,能够做到被点击时减小播放音量;(f)控件 upperbtn 类,作为播放器打开文件的消息响应媒介,能够做到被点击时增大播放音量(g)控件 stopbtn 类,作为播放器打开文件的消息响应媒介,能够做到被点击时停止播放打开的文件;(h)控件 fullscreen 类,作为播放器打开文件的消息响应媒介,能够做到被点击时全屏播放打开的文件;至于其他的,当我们使用MFC 编程时,会有很多封装的类供我们使用,所以就不一一列举了!3.3 主要程序文件1)头文件(为类加入相应的标准流,库):Activemovie3.h- 控件;stdafx.h- 框架构成;多媒体 .h-多媒体的应用;多媒体 Dlg.h- 对话框;resourse.h-为多媒体 .rc 服务!2)源文件(完成各种类的定义与实现):Activemovie3.cpp- 控件;stdafx.cpp- 框架构成;多媒体 .cpp-多媒体的应用;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 14 页 - - - - - - - - - 第页多媒体 Dlg.cpp- 对话框;多媒体 .rc- 运行过的效果!3.4 开发环境以及部署环境要求1) Vs2010; 2) 3.5 主要源码1)打开文件void CMyDlg:OnOpenButton() / TODO: Add your control notification handler code hereCString strFilter = Mp3 File(*.mp3)|*.mp3| ; strFilter += MPEG File(*.mpg;*.mpeg)|*.mpg;*.mpeg| ; strFilter += Wave File(*.wav)|*.wav| ; strFilter += AVI File(*.avi)|*.avi| ; strFilter += All File(*.*)|*.*| ; / 过滤适当的文件必须以0区分,以 00结束 , 否则会出现参数不正确CFileDialog dlgOpen(TRUE,NULL,NULL,OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT,strFilter,this ); / 为CFileDialog 定义对象DWORD MAXFILE = 2412; / 分配足够空间dlgOpen.m_ofn.nMaxFile = MAXFILE; / 设置buffer 的大小CString strFileName; char* buf = newcharMAXFILE; / 分配空间dlgOpen.m_ofn.lpstrFile = buf; dlgOpen.m_ofn.lpstrFile0 = NULL; / 赋值if (IDOK = dlgOpen.DoModal() POSITION pos = dlgOpen.GetStartPosition(); while (pos != NULL) strFileName = dlgOpen.GetNextPathName(pos); / 获取独立文件名m_list1.InsertString(m_list1.GetCount(),strFileName);/ 加至播放列表 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 14 页 - - - - - - - - - 第页 delete buf; / 释放空间 2)播放文件void CMyDlg:OnPlayButton() / TODO: Add your control notification handler code herem_ActiveMovie.Run();/ 播放文件SetTimer(0,20,NULL);/ 设置定时器 3)暂停播放void CMyDlg:OnPauseButton() / TODO: Add your control notification handler code herem_ActiveMovie.Pause(); 4停止播放void CMyDlg:OnStopButton() / TODO: Add your control notification handler code herem_ActiveMovie.Stop();/ 停止播放文件KillTimer(0);/ 关掉定时器 5重复播放void CMyDlg:OnReapetButton() / TODO: Add your control notification handler code hereif (!isRepeat) isRepeat=TRUE; SetDlgItemText(IDC_STATIC2,Status:Repeat); else isRepeat=FALSE; SetDlgItemText(IDC_STATIC2,Status:Normal); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 14 页 - - - - - - - - - 第页 6增大声音void CMyDlg:OnUpperButton() / TODO: Add your control notification handler code herelong Volume=m_ActiveMovie.GetVolume(); m_ActiveMovie.Pause(); m_ActiveMovie.SetVolume(Volume+100); m_ActiveMovie.Run(); 7减小声音void CMyDlg:OnLowerButton() / TODO: Add your control notification handler code herelong Volume=m_ActiveMovie.GetVolume(); m_ActiveMovie.Pause(); m_ActiveMovie.SetVolume(Volume-100); m_ActiveMovie.Run(); 8全屏播放void CMyDlg:OnFullButton() / TODO: Add your control notification handler code herem_ActiveMovie.Pause(); m_ActiveMovie.SetFullScreenMode(true ); m_ActiveMovie.SetMovieWindowSize(SW_SHOWMAXIMIZED); m_ActiveMovie.Run(); 9关闭窗口void CMyDlg:OnCloseButton() / TODO: Add your control notification handler code herem_ActiveMovie.CloseWindow();2名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 14 页 - - - - - - - - - 第页 10退出void CMyDlg:OnClickedExitButton() / TODO: Add your control notification handler code herePostQuitMessage(0);/; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 14 页 - - - - - - - - - 第页4 测试4.1 概述1)打开文件(从曲库中找出歌曲加入列表中)2)播放,暂停,停止,全屏显示,停止,重播(active movie 实现功能)4.2 测试环境1)2)vs2010 4.3 测试计划1)打开文件2)播放及各种键的使用3)多次运行,检查稳定性4.4 测试项目及结果1)打开文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 14 页 - - - - - - - - - 第页2) 5、工作总结5.1 工作成果工作成果不是很明显,因为我自作自受,霉运连连让我乱了阵脚,最后的一个大悲剧直接把我将死了!我没有编写出来一个成功的程序,以失败告终!我完了,Oh,myGod! 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - - - - 第页5.2 过程分析唉!因为自己眼光不够敏锐,没有选择正确的题目,一开始选择了邮件收发程序,当框架做好以后, 开始实现各种功能了,才发现自己并不明白MAPI 是怎么一回事, 到处查也不是很会用, 协议更没搞清楚,而且也不知道应该调用哪个系统函数来实现附件的添加,并且第三步由于协议问题也没头绪,联想到上学期做了好久也没搞出个好程序的经验,我就果断放弃了, 改做文件编辑, 结果又是因为搞不清怎么调出资源管理器搞的头皮发麻,最后又是悲剧的放弃了, 现在一想都后悔啊!意志太不坚定了,就那么个小困难就把我给吓到了,唉!折腾了两天半已经是星期三的下午了,眼看期限快到了,我没办法, 急得要命, 没办法,这时候想起来老师曾经说过网上的媒体播放器很多,于是就到网上去搜了一个,结果一弄。唉!问题又出来了,我的机子里没装那个active movie 控件,又搜了一下,找到插入控件的方法,使用运行命令插入了控件,但还是没有,又一搜,哎呀,真悲剧,2010 版中找不到插入那个控件的方法。怎么办,怎么办?可急死我了,最后无奈到机房插入了那个控件,一点一点的加入了各个按钮,然后添加上了各种函数,谁知这时桌面突然显示,请输入用户名和密码,咋回事?唉!又悲剧了,钱用完了?Oh,myGod ,不是吧?我还没保存那!然后,一翻衣兜, 哎,没钱, 怎么办?没办法,第二天, 再次走入机房, 这次聪明了, 只弄了个插件,回到宿舍,因为高版本肯定能兼容低版本,所以继续用2010 版的完善其它工作,最后大功告成,一运行,不行,参数数目不对。这时,我们班回来了一个人,说老师在为我们开了一教室2402,于是我下午就去问老师您,结果老师您一下子来了句抄的,一下子把我给弄晕了!哎呀,老师真厉害呀, 一眼就看出来了, 但是当我回来以后又运行还是无效的参数数目,并没有那个错误,还是不行啊!我彻底无奈了,仔细查找各种可能,但始终解决不了,最后只得放弃, 听取命运的宣判,最后竟然还是让我找出来错误在哪,我要崩溃了,不过还是强忍着回到宿舍,继续我的寻错之旅!唉,加油!哈哈! 找到了, 原来使用 VS2010之后再用 VC+6.0 会出现缺少文件,不能兼容。 而其中有一段CString PathName= dlgOpen.GetPathName(); PathName.MakeUpper(); m_ActiveMovie.SetFileName(PathName); 中有非法字符很难运行,所以会出现参数数目不正确!5.3 经验教训及其分析(1)真是不经历不知道,我现在才发现自己的基础是那么的薄弱,MFC 的各种控件的使用方法都不是很熟,尤其是列表框,无论怎么学,使用什么方法,都弄不了,真是愁煞我也。本来在文件编辑放弃以后,做了多媒体播放器, 我突然发现了调出资源管理器并选择的方法,但是因为listbox 不太会用,不能使用它打开文件,所以只得放弃,今天一个上午的努力也白费了!以后一定要极爱按基础的扎实,为以后的编程提供巨大的方便!(2)以后做事要做好全局的规划,决定好了之后就不要轻易的改变,否则会误了大事,这让我想到了那个挖井的故事,这儿挖一点挖不出水就不挖了,那儿挖不出水也不挖了,最后挖了好多地方, 还是没有挖出来一滴水,所以做什么事都是浅尝辄止的话,最后是成不了大事的! 就比如说我这次,做了很多却一个也没做成,最后老师还不满意。还不如一直做第一个那,起码来说不会去抄啊!(3)还有,以后千万不能从网上直接拷代码了,或者说一旦复制就不能做丝毫的改动,否名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 14 页 - - - - - - - - - 第页则会出现好多错误,只得一顶一点改回去!(4)通过这次课设,我学会了很多,应该说很熟练的掌握了MFC 控件的添加与使用,也对使用 MFC 的各种控件驾轻就熟了,外也学会了一定的调试技巧,感觉收获颇丰,而遗憾的是自己未能独立的完成一个项目!名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - -