首页 多媒体播放器_课程设计报告

多媒体播放器_课程设计报告

举报
开通vip

多媒体播放器_课程设计报告(设计标题) 多媒体播放器 用户签名: 开发成员: 孟凡林 开发时间: 2010—12-23 目录 30引言 31 工作计划 31.1主要工作阶段划分 31.2工作任务分工 32需求分析 32.1概述 42.2用户分析 42.3 约束条件 42.4功能需求 42.5用户界面需求 43设计与实现 43.1概述 53.2详细设计 53.1.1类的抽象及设计 53.3 主...

多媒体播放器_课程设计报告
设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 标题) 多媒体播放器 用户签名: 开发成员: 孟凡林 开发时间: 2010—12-23 目录 工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录 30引言 31 工作 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 31.1主要工作阶段划分 31.2工作任务分工 32需求分析 32.1概述 42.2用户分析 42.3 约束条件 42.4功能需求 42.5用户界面需求 43设计与实现 43.1概述 53.2详细设计 53.1.1类的抽象及设计 53.3 主要程序文件 63.4开发环境以及部署环境要求 63.5 主要源码 104 测试 104.1概述 104.2 测试环境 104.3测试计划 104.4测试项目及结果 115、 工作总结 关于社区教育工作总结关于年中工作总结关于校园安全工作总结关于校园安全工作总结关于意识形态工作总结 115.1工作成果 125.2过程分析 125.3经验教训及其分析 0引言 现在人们娱乐的方式多种多样,已经有了很明显的变化,以前的户外运动现在已经在锐减,换而之的是网络游戏与网上聊天,而在同时听听音乐看看电影也成为了巨大的需求,所以很多多媒体播放软件出现了,形形色色各种都有,而我也赶下时髦,体验一下编写的过程,现在才发现这并不难,重要的是插件的插入,而其他的功能实现只需调用相应函数就行了! 1 工作计划 1.1主要工作阶段划分 12月20—21 搜索相关资料,学习基础知识,大致设计框架 12月22—23 考虑所用到的数据结构,函数及其作用,做较为细致的分析 12月24日 设计开始,仔细设计! 12月26 写报告 (用表格或图表的形式列出你们小组各个阶段的时间进度大致安排) 1.2工作任务分工 阶段名称 任务名称 任务描述 负责人 协助人 1234 全部 编写软件 孟凡林 孟凡林 2需求分析 2.1概述 1)到网上或图书馆查找相关系统函数实现相应的功能; 2)使用MFC构建相应的用户界面 2.2用户分析 1)要求有稳定的性能,可实现要求的功能; 2)拥有较好的界面,很方便人操作! 2.3 约束条件 (作为开发人员的,通常你的小组的工作时间和人员是一个明显约束;另外站在用户的角度,他们对你有什么约束要求,请从这两个角度进行陈述。) 2.4功能需求 能够打开文件放进播放列表,点击播放键使其播放,暂停键暂停,停止键停止,重播键重新播放,全屏键全屏播放,退出键退出程序,增大键增大音量,减小键减小音量! 2.5用户界面需求 3设计与实现 3.1概述 使用MFC构建相应的用户界面,实现相应的功能----------能够打开文件放进播放列表,点击播放键使其播放,暂停键暂停,停止键停止,重播键重新播放,全屏键全屏播放,退出键退出程序,增大键增大音量,减小键减小音量,然后向其中加入各个函数实现相应的功能! 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)头文件(为类加入相应的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 流,库): Activemovie3.h-------控件; stdafx.h-----框架构成; 多媒体.h-----多媒体的应用; 多媒体Dlg.h------对话框; resourse.h-----为多媒体.rc服务! 2)源文件(完成各种类的定义与实现): Activemovie3.cpp-------控件; stdafx.cpp-----框架构成; 多媒体.cpp----多媒体的应用; 多媒体Dlg.cpp------对话框; 多媒体.rc-----运行过的效果! 3.4开发环境以及部署环境要求 1) Vs2010; 2) 3.5 主要源码 1)打开文件 void CMyDlg::OnOpenButton() { // TODO: Add your control notification handler code here CString 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 = new char[MAXFILE]; //分配空间 dlgOpen.m_ofn.lpstrFile = buf; dlgOpen.m_ofn.lpstrFile[0] = NULL; //赋值 if(IDOK == dlgOpen.DoModal()) { POSITION pos = dlgOpen.GetStartPosition(); while (pos != NULL) { strFileName = dlgOpen.GetNextPathName(pos); // 获取独立文件名 m_list1.InsertString(m_list1.GetCount(),strFileName);//加至播放列表 } } delete [] buf; //释放空间 } 2)播放文件 void CMyDlg::OnPlayButton() { // TODO: Add your control notification handler code here m_ActiveMovie.Run();//播放文件 SetTimer(0,20,NULL);//设置定时器 } 3)暂停播放 void CMyDlg::OnPauseButton() { // TODO: Add your control notification handler code here m_ActiveMovie.Pause(); } 4.停止播放 void CMyDlg::OnStopButton() { // TODO: Add your control notification handler code here m_ActiveMovie.Stop();//停止播放文件 KillTimer(0);//关掉定时器 } 5.重复播放 void CMyDlg::OnReapetButton() { // TODO: Add your control notification handler code here if(!isRepeat) { isRepeat=TRUE; SetDlgItemText(IDC_STATIC2,"Status:Repeat"); } else{ isRepeat=FALSE; SetDlgItemText(IDC_STATIC2,"Status:Normal"); } } 6.增大声音 void CMyDlg::OnUpperButton() { // TODO: Add your control notification handler code here long 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 here long 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 here m_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 here m_ActiveMovie.CloseWindow();² } 10.退出 void CMyDlg::OnClickedExitButton() { // TODO: Add your control notification handler code here PostQuitMessage(0);//; } 4 测试 4.1概述 1)打开文件(从曲库中找出歌曲加入列表中) 2)播放,暂停,停止,全屏显示,停止,重播(active movie实现功能) 4.2 测试环境 1) 2)vs2010 4.3测试计划 1)打开文件 2)播放及各种键的使用 3)多次运行,检查稳定性 4.4测试项目及结果 1)打开文件 2) 5、工作总结 5.1工作成果 工作成果不是很明显, 因为我自作自受,霉运连连让我乱了阵脚,最后的一个大悲剧直接把我将死了!我没有编写出来一个成功的程序,以失败告终!我完了,Oh,myGod! 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)还有,以后千万不能从网上直接拷代码了,或者说一旦复制就不能做丝毫的改动,否则会出现好多错误,只得一顶一点改回去! (4)通过这次课设,我学会了很多,应该说很熟练的掌握了MFC控件的添加与使用,也对使用MFC的各种控件驾轻就熟了,外也学会了一定的调试技巧,感觉收获颇丰,而遗憾的是自己未能独立的完成一个项目! 第 页
本文档为【多媒体播放器_课程设计报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_878321
暂无简介~
格式:doc
大小:225KB
软件:Word
页数:14
分类:工学
上传时间:2011-11-26
浏览量:43