版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安徽新华学院本科毕业论文设计 本科毕业论文设计题目:基于VC的媒体播放器设计与功能实现 姓 名: 学 号: 0942057102 专 业: 电子信息科学与技术 院 系: 电子通信工程 指导老师: 职称学历: 助教 研究生 完成时间: 教务处制安徽新华学院本科毕业论文设计独创承诺书本人按照毕业论文设计进度方案积极开展实验调查研究活动,实事求是地做好实验调查记录,所呈交的毕业论文设计是我个人在导师指导下进行的研究工作及取得的研究成果。据我所知,除文中特别加以标注引用参考文献资料外,论文设计中所有数据均为自己研究成果,不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的工作已在论
2、文中作了明确说明并表示谢意。毕业论文设计作者签名: 日期: 基于VC的媒体播放器设计与功能实现 摘 要目前常见的多媒体软件应该说各有特点,但几乎每一个都存在着不如人意的地方。我的主题是“媒体播放器软件设计基于VC开发工具,首先介绍目前一些媒体和媒体播放器,然后介绍了一种由本人设计的多媒体播放器MediaPlayer。基于vc播放器,使用系统MCIMedia控制接口命令接口编程,具有体积小,支持的格式,占用系统资源少,支持播放列表编辑器,支持多种视频格式等功能优势。关键词:播放器;MCI;播放列表;音频;视频 Media player design and function realizatio
3、n based on vcAbstractCommon multimedia software should have their own characteristics, but almost every no satisfactory way. My topic is media player software design development tool based on VC+, the first is the existing media and media player, and a multimedia playing their detailed design of med
4、ia player. Game player is an integrated development environment based on MFC, using the system MCI (Media controller interface) command interface programming, is small, support multiple format, occupying less system resources to support the playlist editor, support a variety of video formats such as
5、 functional advantages. Keywords: media player; MCI; play l ist; audio; video 目 录 TOC o 1-3 h z u HYPERLINK l _Toc29866 1绪 论 PAGEREF _Toc29866 1 HYPERLINK l _Toc483 PAGEREF _Toc483 1 HYPERLINK l _Toc21709 PAGEREF _Toc21709 1 HYPERLINK l _Toc17816 PAGEREF _Toc17816 1 HYPERLINK l _Toc26518 PAGEREF _To
6、c26518 2 HYPERLINK l _Toc29173 PAGEREF _Toc29173 2 HYPERLINK l _Toc32646 PAGEREF _Toc32646 21. HYPERLINK l _Toc11620 2媒体格式简介. PAGEREF _Toc11620 31. HYPERLINK l _Toc21957 2.1什么是WMF SDK PAGEREF _Toc21957 31. HYPERLINK l _Toc32322 2.2 WMF SDK体系结构 PAGEREF _Toc32322 31. HYPERLINK l _Toc29239 2.3 生成器结构 PA
7、GEREF _Toc29239 31. HYPERLINK l _Toc22914 2.4 读取器结构 PAGEREF _Toc22914 41. HYPERLINK l _Toc9235 2.5 WMF SDK编程开发环境配置 PAGEREF _Toc9235 4 HYPERLINK l _Toc6328 2 软件开发与设计 PAGEREF _Toc6328 5 HYPERLINK l _Toc19750 2.1设计思路 PAGEREF _Toc19750 5 HYPERLINK l _Toc26604 2.2设计步骤 PAGEREF _Toc26604 7 HYPERLINK l _Toc
8、2085 2.3界面设计 PAGEREF _Toc2085 10 HYPERLINK l _Toc28675 2.4关键功能的实现 PAGEREF _Toc28675 13 HYPERLINK l _Toc26814 3 系统测试 PAGEREF _Toc26814 223. HYPERLINK l _Toc13399 1测试目的 PAGEREF _Toc13399 223. HYPERLINK l _Toc25295 2测试环境 PAGEREF _Toc25295 223. HYPERLINK l _Toc26 3检测报告 PAGEREF _Toc26 223. HYPERLINK l _T
9、oc883 4测试结果 PAGEREF _Toc883 244 HYPERLINK l _Toc10315 结 论. PAGEREF _Toc10315 27 HYPERLINK l _Toc10315 致 谢. PAGEREF _Toc10315 28 HYPERLINK l _Toc6320 参考文献. PAGEREF _Toc6320 261 绪 论多媒体技术的概念及多媒体技术在十九年代早期的应用,经过十年多的开展,随着计算机科学的开展和网络的普及和多媒体技术的开展,已成为计算机领域的一个热点技术的开展,各种媒体格式的视图,如何简单和方便的播放各种媒体已经成为人们普遍关注的问题,和媒体播
10、放器的开发已非常重要。1.1课题研究的目的和技术开展的现状.1研究本课题的目的随着技术的开展,多媒体素材类型也有所增加,包括音频,视频,图像,动画,音频和视频,因为图像和其他大的信息容量,在过去的硬件限制,多媒体应用并不广泛,随着硬件技术的不断提高,多媒体技术已广泛用于各类人才。多媒体课件,网络课程的开展,网站,软件,工程管理和要求的多媒体材料的使用,所以为多媒体的开展准备了一个实际的意义,与其他多媒体播放器相比,这是一个强大的媒体播放器,占用空间小,它是密切结合现有的多媒体资源的应用现状,不仅具有直观感强,不失一般性。微软公司于1998推出的Visual C + + 6,它是一个平台,支持W
11、in32应用程序应用程序,效劳效劳和控制控制的可视化编程的集成环境。并用VC+ 5最大的区别是,它有更强大的功能,MSDN微软开发的网络提供VC+ 6包括所有微软程序产品在线帮助;此外,可用的对象的成员函数的参数类型的类成员变量和成员函数,并可以在屏幕上动态地显示,使用户不用记得那些复杂的无聊的函数名和复杂的参数,使编程更容易使用。VC + + 6是微软的旗舰产品,功能强大且编程获得程序的偏好。多媒体技术进行了以下方面的有效应用:多媒体管理信息系统,显示系统。多媒体电子出版物标题。 计算机辅助教学,教育和培训的设计与制作;电脑艺术;电脑游戏娱乐;双向电影;协同工作。有三个主要趋势:进一步提高计
12、算机支持的协同工作环境下的智能;多媒体技术;多媒体信息实时处理和压缩算法集成到CPU。 根据研究,基于VC的MFC对话框的媒体播放器的开发,利用Windows MCI媒体控制接口处理控件,VC 6与ActiveX控件activemoviecontrol对象来实现各种格式的媒体播放和程序界面。首先确定所要解决的问题是明确的名称的MCI函数和命令的消息类型和功能;其次是流媒体的具体过程的分析,在公开的媒体装置的应用需要做的事情,所以在参加过程支持代码的应用程序;一个粗略的轮廓,在应用程序的程序最好的画流程图,开始考虑设计程序框架,设计应用程序的外观;最后也是最关键的是编写代码以显示此功能的媒体播放
13、器的根本实现,再次是程序的调试和完善。本课题中的重点是在ActiveMovie控件的应用,动态控制EM电影是微软公司推出的多媒体编程控制提供音频和视频媒体文件非常声音的播放,可以支持多种文件格式,普通的WAV文件和AVI文件的视频文件MPEG压缩格式,可以正常播放。控件可以自动区分基于文件扩展名的设备类型,并完成相应的控制。因此,如果你的应用程序准备提供多媒体支持,然后使用ActiveMovie控件是一个好主意。事实上,许多优秀的多媒体应用,多媒体播放是使用ActiveMovie控件实现设计的应用精心程序的用户界面,我们可以开发一个功能齐全,美观大方,具有高水平的多媒体播放器。使用一个acti
14、vemovie控制多媒体应用的开展可以大大提高多媒体开发效率,只要设置控件的文件属性,名,来确定控制开放媒体文件名,然后执行run方法可以播放媒体文件;通过设置选择。最后用鼠标点击按钮完成播放,停止,暂停,快进,快退等功能。多媒体播放软件现在几乎成为每个家庭电脑安装必要的软件,比拟流行的 有迅雷播放器,Windows媒体播放器和快播、百度影音等等,可以播放MP3,RM,RMVB,MPEG,由软件DAT等格式的多媒体文件。这些商业软件的功能已经做得相当完美,也符合大多数普通消费者的胃口,但是很多人的电脑安装不同的播放器,因为不同的播放器有不同的特点,并不是每个人都连接到一个播放器,设计一个符合自
15、己的习惯的播放器是可行的。强大的MFC、AppWizard、Class Wizard,方便使用,类似向导和各种控件可以方便地建立各种应用程序。同时,要实现更先进和复杂的功能,还可利用资源的ActiveX控件,在现有资源的控制,可以节省自己编程的复杂的过程,从而实现更先进的功能。本课程是专为使用VC 6控制一个ActiveXWindows媒体播放器控件,建立自己的多媒体播放器。该多媒体播放器翻开该文件,播放,暂停,快进,全屏幕,调整音量,倒带和其他根本的播放功能,可以播放:MP3,WMA ,*,*,*,*,MDI,WAV,AVI,*。视频和音频文件格式,如DAT。同时也使隐藏的播放列表,可以选择
16、播放,随机顺序、单周期随机播放,在三个方面:将单周期随机有翻开的文件,播放,暂停,在播放模式下关闭,是个人的选择项。1.2 媒体格式简介 1.2.1什么是WMF SDK WMF SDK是微软Windows Media技术的重要组成局部,它基于COM技术,可以方便地开发具有高性能要求的多媒体应用程序。对WMF SDK关键技术作了概括介绍,并给出了采用Visual C+编程语言开发视频播放器的软件实现过程。WMF SDK采用了面向对象的设计,是一套完全基于COM组件模型的高级开发包。它引入的生成器,读取器,器等对象屏蔽了ASF数据格式、传输控制等较为底层的流媒体技术实现细节,留下比拟上层的编程接口
17、给开发者使用。 1.2.2 WMF SDK体系结构Windows Media Format SDK 具有许多处理 ASF 文件的功能,但其核心功能是读写文件。1.2.3 生成器结构 使用Windows Media Format SDK构建应用程序将生成器源介质样品的传递。生成器设置指定的配置文件的目标代码的文件。配置文件定义的编码格式的文件,包括每个流程的详细信息和如何处理信息流。大多数的音频和视频流的媒体编码解码器处理。然而,代码首先与转换器来处理数据,准备压缩。当样品被放置在一个文件中,然后转移到多路复用器,多路复用器根据介绍时间从所有流的行扫描采样和数据包。比特流复用器的创立和发送到接收
18、器,用于治疗的最终目的的I / O接收机,无论是在磁盘或互联网或其他网络播放的文件。 1.2.4 读取器结构 读取过程和数据写入过程根本相同,但顺序是相反的。读取器连接到源,源可以是一个文件,网络连接或自定义源。分流处理文件的数据局部,数据被划分成一个流的样本,然后解压缩的样品如果启用DRM保护,并通过相应的处理Windows媒体编码解码器。默认情况下,读取器会自动选择适宜的解码解压缩的ASF数据流。1.2.5 WMF SDK编程开发环境配置 WMF的SDK是唯一适合的C / C + VC 6的设置方法,选择菜单命令工具选项,单击“目录,选择包含文件显示目录中的下拉菜单,然后安装路径,在VC
19、SDK标准路径。VC6.0工程应用的开发,调试版本还需要以下设置:选择在工程设置菜单命令,输入标签链接,一般选择类别的下拉列表,winmm.lib和wmvcore.lib文件添加到对象/库模块忽略所有默认库并选择。2 软件开发与设计 根据每个按钮的控制功能和Windows媒体播放器控件的特点,首先要cwmpcontrol在头文件中。cwmpsettings对象,结合和定义,需要在程序的后面的调用类的成员函数。翻开文件按钮,调用的通用文件对话框类,并使用选定的文件到播放列表addstring列表功能,在MFC的研究。对一些根本功能的实现,如播放,暂停,音量,体积缩小,全屏幕,静音,快进,快退等功
20、能,一个成员函数的调用cwmpcontrol和cwmpplayer类实现。 翻开? 读取播放列表 播放 添加播放列表设置文件过滤 初始化 开始 播放控制播放列表的大小和方向,本设计使用SetWindowPos函数来改变一个窗口弹出,和一些对保存列表,删除列表的实现相关的功能,删除当前的功能。播放列表,我还增加了播放模式选择功能,提供玩,然后循环周期,单周期三个选择的OnTimer函数和函数能够控制播放模式的运用。根据上述思路设计,流程图如图2.1所示:N Y播放模式 退出?N 图2.1 流程图 退出 Y2.2.设计步骤 首先,翻开Microsoft Visual Studio6.0软件,新建一
21、个工程如图2-2所示, 图2.2 工程建立图2.2 工程建立 以kejian为工程名,然后将此工程定义为基于对话框的MFC应用程序如图2.3所示,点击完成就成功建立了一个基于对话框的工程。在建立好工程之后,首先是Windows Media Player控件的添加:建立空白对话框之后,在对话框的空白处单击鼠标右键,选择Insert ActiveX Control菜单项。选择Windows Media Player控件。参加控件后,此时该控件与该对话框并没有联系,需要对其进行变量的关联。 添加完该控件之后可以发现,该控件与右边控件工具栏添加的控件的形式与功能完全不同,是一种更为高级的控件,将该控件
22、名改为IDC_player, 如下图。图2.6 Windows Media Player控件虽然已已经添加了该控件,但是可以发现,改控件没有与工程中的对话框发生任何联系,所以需要对其进行变量的关联,所属类为Kejian类,变量类型为CWPPlayer4如图2.7所示。 图2.7 关联变量 关联变量之后,才算是真正的添加完了该控件,可以发现在关联变量之后,控件工具栏多了Windows Media Player控件的选项,并且在Source Files中增加了17个类,相应的头文件也增加了17个,如图2.8所示。图2.8 添加控件后的变化一类重要的cwmpplayer4,cwmpcontrols,
23、cwmpmedia,cwmpplaylist,cwmpsettings五类。该cwmpplayer4类是呼叫的其他类型的主要对象以及根本的控制功能,提供与Windows媒体播放器控件交互的一种根本方法,其中的成员函数也可以从其他相关对象的情况下获得的局部;cwmpcontrols主要是控制多个操作;类cwmpmedia主要是一些媒体文件资源;cwmpplaylist主要播放操作;cwmpsettings主要是一些根本的集合操作的媒体文件。为控制添加和内部功能的认识需要更多的时间来完成这个熟悉的,添加关键控制后,接口设计。首先是翻开按钮,用来翻开此媒体文件。然后,播放,暂停,快进,快退,全屏,音
24、量,体积减小,静音,停止播放,退出按钮。变量的相关性,于ID的修改在表2-1,表2-2所示: 表2-1 :控件ID以及关联变量控件Caption按钮ID关联变量类型关联变量名称WMPlayerIDC_playerCWMPlayer4m_ZhuangWenfeng表2-2 控件ID以及对应响应函数控件Caption按钮ID消息响应函数翻开IDC_openOnopen播放IDC_playOnplay暂停IDC_pauseOnpause全屏IDC_fullscreenOnfullscreen播放列表IDC_listOnlist列表框IDC_LIST1OnDblclkList1快进IDC_fastfo
25、rwardOnfastforward快退IDC_fastreverseOnfastreverse+音量增加IDC_addvolOnaddvol-音量减小IDC_decvolOndecvol静音IDC_muteOnmute表2-3 控件ID以及对应响应函数控件Caption按钮ID消息响应函数停止IDC_stopOnstop保存列表IDC_saveOnsave删除列表IDC_dellistOndellist删除当前IDC_dellistcurOndellistcur退出IDC_exitOnexit关于IDC_aboutOnabout以上是关联的对象对应的控制,除了相应的控制,也需要一些有17种W
26、indows媒体播放器控件生成的类的对象被定义,和成员函数的定义,和一个对象的成员声明放在头文件中,本设计主要有3步,因为设计出提醒弹出框,所 以他们会在它的定义,如表2-3所示表2-4 其他类及对应对象类名对象名类名对象名CWMPControlsm_ControlCStringm_PathNameCWMPSettingsm_SettingCheckCCheck除了各控制变量的函数和响应消息,以及相关的对话框类的消息响应函数,因为播放模式选择功能添加这样的设计,因此需要使用wm_timer消息响应函数和函数OnTimer和函数来实现这一功能,对话框的消息响应程序书写功能的相关性。添加的方法如下
27、图。 图2.10 多媒体播放器界面最终得到各个空间分布后的界面如图2.10所示。图多媒体播放器interfacein除上述主对话框,我也在aboutbox进行了重新设计,还做了一个检查对话框,在其中aboutbox如下图。检查对话框退出按钮,弹出提醒窗口,当用户点击,主要是用来防止用户不小心按下关闭按钮使程序关闭,这有利于用户,加强友好的软件,如图2.11所示。 图2.11 修改后的ABOUTBOX对话框 于菜单的制作,首先,需要在ResourceView中参加资源Menu,后增加对应的菜单项以及菜单自己布局,下拉菜单那么需要和按钮关联,其方法是将其ID和按钮的ID一样,菜单布局图2.12所示
28、。 图 2.12 菜单栏 对于各个函数的介绍,本文以关键代码以及注释的方式进行介绍,首先介绍主对话框中函数的实现以及说明:(1)Onopen();翻开函数void CejianDlg:Onopen() char szFileFilter=All File(*.*)|*.*|AVI File(*.avi)|*.avi|Mp3 File(*.mp3)|*.mp3|MPEG File(*.mpeg)|*.mpeg|Media File(*.asf)|*.asf|Video File(*.dat)|*.dat|MPGA File(*.mpga)|*.mpga|Wave File(*.wav)|*.wa
29、v|Movie File(*.mov)|*.mov|MidFile(*.mid;*,rmi)|*.mid;*.rmi|WmaFile(*.wma)|*.wma|Rmvb File(*.rmvb)|*.rmvb|All File(*.*)|*.*|; /可选的文件类型 CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT|OFN_NOCHANGEDIR,szFileFilter); /OFN_ALLOWMULTISELECT是允许选择多个文件 OFN_NOCHANGEDIR是不改变当前目录 POSITION po
30、s=dlg.GetStartPosition(); if(dlg.DoModal()=IDOK) while(pos!=NULL) m_pathname=dlg.GetNextPathName(pos);/得到完整的文件名,包括目录名和扩展名 m_list.AddString(m_pathname);/增加到播放列表 问题是理解的奇怪的功能,因为大量的类,并且每个成员函数是不同的,更难以使用。除了常见的文件对话框和更熟悉的,其他的功能通常是不可见的。通过增加播放目录的路径名主要取决于getnextpathname函数,该函数是添加到播放列表中的工程名称 (2)Onlist();播放列表按钮函数
31、和OnDblclkList1();播放列表函数: void CKejianDlg:Onlist() flag=!flag; if(!flag) SetWindowPos(NULL,0,0,400,430,SWP_NOMOVE);/播放列表初始位置状态else SetWindowPos(NULL,0,0,590,430,SWP_NOMOVE);/点击按钮后播放列表位置状态播放按钮设计功能是运行软件播放器播放的是隐藏的,当你点击按钮,弹出的列表。为了实现这个功能,我会一起播放列表和播放表按钮。为此,该程序定义了一个全局变量的图标,把它作为一个标志,在初始化定义窗口无相对位移,当你点击按钮,位移的窗
32、口,它会到达隐藏和功能的播放列表。但对播放列表,它需要实现双播放功能,所以加上控制列表消息映射,并选择双击消息响应函数,如图2,13所示。该工程也参加了执行响应函数函数,当你点击功能开始创 建一个计数器,从而实现播放模式功能。 图13 播放列表消息影像函数设置CKejianDlg 具体程序如下所示: void CKejianDlg:OnDblclkList1();/双击播放函数 CString str int index=m_list.GetCurSel();/获取选择的行数 m_list.GetText(index,str); m_CKejianDlg.SetUrl(str);/播放 m_p
33、athname=str; SetTimer(1,1000,NULL); /在点击播放时就创立计时器 每隔1秒就自动执行下响应函数ontimer()3Onplay();播放函数及其他多媒体播放控制按钮void CKejianDlg:Onplay() m_Control.play(); /暂停后继续播放如同播放函数所示,其他控制播放状态的函数都可以直接调用添加的控件的类的对象调用实现,按钮响应函数和调用的函数关系如表2-5所示。 表2-5响应函数和调用函数关系响应函数调用函数响应函数调用函数Onfastre6verse()m_Control.fastReverse()Onfulscreen()m_
34、Kejian.SetFullScreen(1)Onfastforward()m_Control.fastForward()Onmute()m_Setting.SetVolume(m_Setting.GetMute();Onstop()m_Control.stop()Onaddvol()m_Setting.SetVolume(m_Setting.GetVolume()+10)Onpause()m_Control.pause()Ondecvol()m_Setting.SetVolume(m_Setting.GetVolume()-104播放列表状态 这款播放器设计了保存播放列表、删除播放列表、删除
35、当前三种对播放列表状态的控制,其中函数主要调用了m_list类中的函数,在初始化是参加了一个读取上次保存的播放列表的指针函数,增加了播放列表的人性化。具体函数如下:void CkejianDlg:Onsave() CStdioFile file;file.Open(.list.txt,CFile:modeCreate|CFile:modeReadWrite|CFile:typeText);/翻开指定文件for(int i=0;iSetCheck(true);/默认播放模式为顺序播放 计数器函数OnTimer程序如下:void CKejianDlg:OnTimer(UINT nIDEvent)
36、int index=m_KejianDlg.GetPlayState();/获取播放状态if(index=1)/如果播放完成if(CButton *)GetDlgItem(IDC_RADIO1)-GetCheck()/如果是顺序播放CString str;int index=m_list.GetCurSel()+1;if(index=m_list.GetCount() index=0;/如果播放完最后一曲就自动播放第一首m_list.GetText(index,str);m_kejian.SetUrl(str);m_list.SetCurSel(index);/自动置光标/这样就实现了顺序播放
37、if(CButton *)GetDlgItem(IDC_RADIO2)-GetCheck()/随机播放srand(time(0);/目的在于每次都能产生不同的随机数序列m_list.SetCurSel(rand()%m_list.GetCount();/随机选择0-m_list.GetCount()-1的任意一个数即随即选择m_list里的文件m_list.GetText(m_list.GetCurSel(),m_pathname);m_kejian.SetUrl(m_pathname);if(CButton *)GetDlgItem(IDC_RADIO3)-GetCheck()/单曲循环m_
38、list.GetText(m_list.GetCurSel(),m_pathname);m_kejian.SetUrl(m_pathname);CDialog:OnTimer(nIDEvent);6Onabout()和Onexit()函数 因为调用自身编辑的对话框并且修改了工程中的ABOUTBOX资源,所以也要对其进行一定的修改。首先,是对Onabout()函数的修改:void Ckejian:Onabout() CAboutDlg aboutDlg; aboutDlg.DoModal(); 其次,在onexit函数的重载。添加对话框,制作简单没有介绍,这是介绍添加对话框和相应的类和添加的头文
39、件。制定一个好的对话框,对话框的使用ClassWizard对话框类的关联,作为一个调用的结果,因此建立对象的对话框框,如图2.15中所示。 选择创立一个新的类,你需要在输入并输入一个名称,将添加一个对应的check.cpp和检查。在工程文件视图文件是确定的,那么你可以在自制的对话框类和对象。所谓的对话框如下列图所示,和删除在完成退出计数器,释放内存。void CKejianDlg:Onexit() CCheck Check; /生成CCheckBox类的对象CheckBox if(Check.DoModal()=IDOK) /弹出对应的模态对话框 CDialog:OnCancel(); /点击
40、确定那么退出KillTimer(1);/退出程序时删除计数器 7的菜单栏添加生产函数做一个菜单栏添加只要到对话框中相应的,本文不再。每个菜单项的功能,只要菜单项进入相应的功能按钮控制相应的ID相同,可以方便快速地调用。3 系统测试测试目的 根据用户需求,设计,概要设计和详细设计测试用例,测试软件系统。其目的是: 1:测试是为了发现错误的程序,程序的执行过程。2:好的测试方案是可能发现的错误的测试方案到目前为止还没有被发现。3:成功的测试是发现到目前为止被发现的错误的测试。3.2测试环境 操作系统Windows xp。测试重点是系统后台根本功能模块。3.3调试报告有在设计过程中的许多错误,错误的
41、搜索使用VC+ 6编译,根据错误,改正错误。在这一点错误不重复,有没有相应的头文件,在一个小错误,正确的变量名称不明确,容易修改,将在下面描述,程序的调试和误差修正方法1问题一 在播放列表的设计时,单击“播放列表成员没有播放的文件已被修改,代码没有改变,所以,经过一段时间的一个按钮,而不是双发挥的功能如图3.1所示。 图3.1 调试结果1 最终在在线数据获取的问题的解决方案:双播放功能,在播放列表中添加一个双击消息映射函数的实现,然后ondblclklist1的代码,从而实现双播放功能。2问题二 此段程序在OnInitDialog()函数中,连接编译都未报错,但是播放、暂停等多个按钮控件无法工
42、作。后考虑到其他类都进行了的类的绑定,所以也要对CWMPControls类进行绑定,其中static_cast相当于将某一对象和赋值符号右边的值进行绑定,由于是静态绑定,故绑定后不再改变,而后续程序中出现的m_Control对象却并未出现对应的绑定,如图3.2所示。添加代码: m_Control = static_cast(m_WMPlayer.GetCurrentControl();之后,后续的控件的操作可以正常进行了。3问题三alog函数,编译器将不会连接错误,但播放,暂停等多个按钮控件将不工作。在其他类的账户是类绑定,所以也被结合在static_cast cwmpcontrols,相当于
43、一个对象,指定一个符号在绑定的值的右侧,是静态绑定,绑定不改变,并在随后的程序m_control对象的出现是不受约束的相应的。添加代码:m_control = static_castcwmpplaylist m_wmplayer.getcurrentcontrol;在那之后,操作的控制可以是正常的。4停止按钮开始编程,直接调用功能,如图3.3所示,但当调试时,请单击“停止按钮,玩家停止然后继续播放下一首歌。经过分析,它是计数功能的问题,由于游戏模式功能外,当停止时,计数器不停止工作,应对本轮继续播放功能的执行,所以后来添加删除计数器代码:killtimer1,如下图。Void CKejianD
44、lg:Onstop()M_control.stop();/停止函数Void CKejianDlg:Onstop()M_control.stop();/停止函数Killtime1;删除计数器 图3.3 原来的代码 5问题四 在退出按钮设计的四个问题是设计一个退出提醒功能,以防止用户不小心使用时的错误和错误的退出程序,开始更正了这一点,然后让学生得到答案,然后添加另一个对话框,然后创立一个新的类别,增加在头文件#包括“检查,然后进行编程,以实现特定的功能,如下图。 图3.5 3.4 测试结果 图3.6 刚运行时隐藏播放列表 图3.7 关于对话框 图3.8 菜单功能 结 论 从程序运行调试的结果来看
45、,设计根本成功。经过这次课程设计,让我对于MFC编程的方法有了更新更全面的认识和深入的了解,对VC的运用更是熟练了很多,而且有了系统地设计软件的概念,这对我以后的软件开发打下了很好的根底。但是毕竟只是一个人开发,且时间有限,技术知识不够,当然不能跟主流的媒体播放器比方国内的迅雷播放器,暴风影音等相比,本软件还可以继续开发,比方实现屏幕大小的任意调节等。在所给的论文设计中,多媒体播放器的设计最能吸引我。我想,对于设计这个平时用得最多的软件,应该不难吧。然而事实往往出人意料,着手开始设计程序流程图,我才发现去年学的C+语言知识所剩无几,很多操作都不能熟练完成,只能找到以前的课本和相关资料再学习。花
46、了两天的功夫才把资料根本看完,导致设计流程图的时间大大减少,没有设计出比拟好的流程图,这对后续的程序编辑带来了一定的困难。由此,我深刻地体会到,在编程之前,画程序流程图具有不可取代的重要性。在更改正的流程图根底上,我对自己所设定的功能进行编程,提交程序时,由于我通过调节滑块控制音量并在一个编辑框中同步显示音量大小,谢老师问我如何实现在编辑框中输入数值反过来改变音量,我当时没能正确答复,老师提示我用GetPos相反的函数实现该功能。听取老师意见后,我采用SetPos函数成功实现该功能。其实这两个函数都属于一个类的成员函数,但我只懂其一,说明自己看参考资料时不细心,遗漏了某些重要知识,以后需要多多
47、注意。总而言之,这次课程设计让我学会了很多,发现了自己的缺乏,加深了对提出问题-分析问题-解决问题这一思维方式的运用,锻炼了自己的逻辑思维和编程能力,为以后工作学习打下了较好的根底。致 谢 在该次论文设计的过程中,感谢老师的指导以及同学之间的帮助,在很多不明白的方面比方执行 link.exe 时出错,给于了充分的帮助。在此次论文的制作过程中,遇到了大量的问题这使我明白了自己的很多缺乏之处,在学术上是永无止境的,所以我还是要更加努力的前进去壮大和充实自己,同时也使我深深的意识到不管自己是否发觉,身边都会有很多人在帮助自己。还要感谢和我的几位同学,和同事庄文峰,是你们在我平时设计中和我一起探讨问题
48、,并指出我设计上的误区,使我能及时的发现问题把设计顺利的进行下去,没有你们的帮助我不可能这样顺利地结稿,在此表示深深的谢意。 参 考 文 献 1 ?Visual C + + 多媒体开发指南?. 李博轩. 清华大学出版社, 2000. 2?深入解析MFC?. GEORGE SHEPHERDSCOT WINGO著, 赵剑云,卿瑾译. 北京:中国电力出版社,2003.3?Visual C + +编程技巧精选500例?. 罗斌.中国水利水电出版社,2004.4?.姚予疆. 人民邮电出版社2001. 5 program/cshapo/csharpjs/20210118/192308.html 6 百度文
49、库. 7?Visual C+.NET多媒体编程M?.8?面向对象程序设计与VC+实践M?. 9?Visual C+教程M?. 10?流媒体宝典?. 9JWKffwvG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U
50、E9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjq
51、v$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5u
52、xY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9Cpb
53、K!zn%Mz849GxG89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vS
54、TT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89Am
55、YWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&
56、gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVk
57、um&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYW
58、pazadNuGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&
59、qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89Amv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4
60、NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广西制造工程职业技术学院单招综合素质考试题库附答案详解(巩固)
- 2026年山西省晋城市单招职业倾向性测试题库及答案详解(真题汇编)
- 台湾绩效奖惩制度
- 合同签订奖惩制度
- 2026年嵩山少林武术职业学院单招职业技能测试题库带答案详解(巩固)
- 唐朝官吏奖惩制度
- 喷漆工段奖惩制度
- 2026年广西培贤国际职业学院单招职业适应性测试题库带答案详解(夺分金卷)
- 2026年广州工程技术职业学院单招职业适应性测试题库附答案详解(a卷)
- 基建科奖惩制度
- 做账实操-增值税强制申报情况说明书
- 胃食管反流病
- 洗衣店和单位洗衣合同范本
- 证券投资理论与实务考点重点讲义
- 高中英语单选题100道及答案
- 2025年江苏省南京市、盐城市高考数学一模试卷(含答案)
- 上海2024年高考英语试卷
- 保安证考试的复习方法及技巧试题及答案
- 化工设计知到智慧树章节测试课后答案2024年秋浙江大学
- 苏教版六年级数学下册第2单元《圆柱和圆锥》全部课件(共10课时)
- 中小学寒假安全教育主题班会课件
评论
0/150
提交评论