c++课程设计说明书(多媒体播放器)

2026/4/24 2:10:53

武汉理工大学《面向对象程序设计》课程设计说明书

音量与视频进度的控制主要是SB_THUMBTRACK、SB_PAGEDOWN、SB_PAGEUP,三个消息响应即移动滑块、单击滑块右边滑条、单击滑块左边滑条的消息响应来实现音量与视频进度的控制。

3.3.6 菜单“帮助”中“视频时长”功能的实现

void CChenYuCheng_DMTDlg::OnAbout()

{ CString strtime; strtime.Format(\ }

MessageBox(strtime,\视频时长(s)\

4 结论与心得体会

经过这次课程设计,让我对于 MFC 编程的方法有了进一步的认识。开始看到五个选题时,我第一眼就确定了感兴趣的的题目——多媒体播放器,虽学vc++不久,但还是希望这次课设能做出一个漂亮的小东西,一个播放器并且还具有播放视频音频的真实效果,其他的功能也都要实现,就觉得这个课设应该比较难,因为从没接触过这种实用性很强的软件,而且还这么高大尚。

接触题目开始做后,我花了大量时间去了解第一步怎么做,分别查找了各个控件基本用法功能,最后选用了 Windows Media Player 控件,因为我vc中只能找到这个与视频有关的控件,于是在网上查了一些关于 Windows Media Player 控件的资料,结果按照网上说的方法来根本无法实现,因为网上都说要先插入17个Windows Media Player 控件相关的类,但是我vc却不照网上那样实现,所以在头两天是在摸索中,耗费了很多时间,最后我先不管第一步,直接插入控件,然后发现关联变量时会有提示要插入17个类,点确定就行,问题就这么解决了。

我结合了自己在网上搜索的资料,做好了整个多媒体播放器的整体设计,确定了软件的框架、主要构件以及构件之间的关联,而后由总体设计逐渐深入完成软件的详细设计和开发过程。编写代码更加有条理,才会更加符合软件工程的标准。整个程序设计我做了两天,直到检查我都还在编写代码,每天熬夜到1点多,也学会了不少东西。

最后,终于做完了播放器,实现了设置的功能,感觉整个过程完全不像老师所说的“视频播放器最简单”,反而感觉是最难的,虽然很多代码现成的,但是关键是项目繁多,加起来很麻烦,琐碎。但最后感觉还是很快乐,眼看着自己设定的一个个按钮都实现了功能,

10

武汉理工大学《面向对象程序设计》课程设计说明书

确实是一种很大的快乐,汗水也是值得的。

5 思考题

1) 控件自带的类和本程序中的类是如何共同作用的?

答:控件自带的的类肯定会在对话框的主程序中被调用,那么就要在主程序中#include入对应类的头文件。对需要用到的类生成对应的对象以实现类中函数的使用。 在完成控件自带类的函数在程序中的使用之后,还需要调用对话框自身的函数,比如消息及消息响应函数等函数,以及各控件对应的消息响应函数,并且初始化函数等也需要做一些改动,添加一些与控件类有关的函数或者定义一些变量,如此便可以实现控件自带类和本程序中的类的共同作用。

2) 说明程序中调用的控件函数的作用?

各个控件有不同的函数与之对应,从而分别实现不同功能,具体的函数与功能见下表4所示。 功能 打开 播放 暂停 停止 退出 表3 调用的控件函数的作用

控件函数 功能 控件函数 GetPathName() 快进 fastForward() SetUrl () 快退 fastReverse() pause() 静音 SetVolume(0) stop() 音量 SetVolume() close() 进度 SetCurrentPosition() 6 附录

6.1 调试报告

6.1.1 调试一

运行时错误指明如下如图所示:

图9 调试一错误提示

错误提示为:use of undefined type 'CWMPControls'。在这行代码中,我用控件变量m_mediaplayer调用GetControls()函数来获得CWMPControls类的对象以调用该的成员函数

11

武汉理工大学《面向对象程序设计》课程设计说明书

pause()函数,根据错误提示可知,我这行代码是写在视图类中,调用pause()属于类外调用,但是该类不认识CWMPControls类,所以要在视图类的最前面要加个头文件#include \。

6.1.2 调试二

运行时错误指明如下如图所示:

图10 调试二错误提示

错误提示:'SetVolume' : is not a member of 'CWMPPlayer4'。解决方法,将该行代码写成m_mediaplayer.GetSettings().SetVolume(0)即可,因为SetVolume(0)不在CWMPPlayer4类中,而是在CWMPSettings类,所以要通过GetSettings()作中间过度函数。

6.1.3 调试三

运行时结果指明如下如图所示:

图11 调试三错误提示

12

武汉理工大学《面向对象程序设计》课程设计说明书

这严格说不算错误,只是运行时视频进度滑块无法控制视频进度,只要一移运滑块就回到视频开始的地方。经排查发现,原来是我滑块初始化为(0,0),因为我初始化进度滑块代码加在OnInitDialog()中,这个函数在我打开文件时就已经执行了,也就是m_time=(int)m_mediaplayer.GetCurrentMedia().GetDuration()中,m_time变量在没有指定打开文件是就已经有值了,即0,所以再初始化滑块是就被置成0,也就无法完成控制视频进度的功能。

解决方法:只要将初始化代码加到消息响应函数OnHScroll()中即可。

6.2 测试结果

6.2.1 打开文件时的运行结果

图12 打开文件运行结果

6.2.2 文件正常播放

13


c++课程设计说明书(多媒体播放器).doc 将本文的Word文档下载到电脑
搜索更多关于: c++课程设计说明书(多媒体播放器) 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219