毕业设计(论文)-多媒体播放器的设计.doc_第1页
毕业设计(论文)-多媒体播放器的设计.doc_第2页
毕业设计(论文)-多媒体播放器的设计.doc_第3页
毕业设计(论文)-多媒体播放器的设计.doc_第4页
毕业设计(论文)-多媒体播放器的设计.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多媒体播放器的设计摘要 本文主要是开发了一款简单的多媒体播放器。可以播放多种格式的音频、视频文件,该播放器实现了的基本功能包括:音频视频文件的打开、添加到菜单、媒体的播放、音量大小的调节、播放时间的拖动、暂停播放、停止以及歌曲信息的查询与添加等。使之成为一款简易的媒体播放设备,能够完美的播放市面上大多数的音频、视频文件。在毕业设计中,系统开发平台为Windows XP操作系统,程序设计环境采用Visual C+ 6.0。在程序设计中,利用了微软公司开发的ActiveX控件可视动画控件ActiveMovie,程序通过调试运行,初步实现了设计目标,本程序是基于MFC集成开发环境,利用ActiveMovie控件实现媒体播放的功能的,除了基本的播放控制外,还具有多文件自动顺序循环播放、全屏播放、静音等实用功能。关键字:多媒体;播放器;Active控件 目录 第一章 绪论21.1 引言21.2 系统设计的目的和意义21.3 研究背景31.4 论文主要研究内容及论文结构安排7第二章 开发平台介绍和软件的初步设计92.1开发平台的介绍92.2 软件的需求分析和模块设计112.2.1软件的需求分析112.2.2软件的模块设计12第三章 数据模型分析与设计133.1 数据需求分析133.2 数据库概念结构设计133.3 数据库的逻辑结构设计143.4 数据库结构的实现15第四章 多媒体播放器软件设计164.1 模块实现函数说明164.2 主要变量声明174.3 设计多媒体播放器的界面184.4 播放器模块设计184.5 功能模块设计204.6 歌曲信息模块的设计23第五章 程序实现结果285.1 程序运行流程图285.2 播放器实现结果演示28第六章 总结与展望34参考文献35致谢36 江苏大学毕业设计第一章 绪论1.1 引言 在当今信息社会,以多媒体为代表的信息技术和信息产业的发展和应用对人类社会产生的影响和作用愈来愈明显,愈来愈重要。多媒体的发展和应用,极大地推动了诸多工业的相互渗透和飞速发展,逐步改变了整个人类社会的工作结构和生活方式。可毫不夸张地说,多媒体产业的形成和发展,将不仅引起计算机工业的一次革命,也将影响人类社会发生一场巨大的变革【1】。在世界许多发达和发展中国家,对多媒体技术的研究和应用以及多媒体产业的形成和发展十分重视,投入了大量的人力、物力和财力,试图拥有先进的多媒体信息技术和庞大的多媒体产业市场尽快推动本民族工业、经济和科学技术的飞速发展。如近年来信息高速公路、计算机数字通信和大众媒体传播等领域的迅猛发展和统一对于促进了一个国家,乃至整个人类社会的发展已起到了里程碑的作用【2】。多媒体为什么好似一夜之间流行全球,最重要的原因有二:一是多媒体是人类可以直接接受的最为全面和最为丰富的信息资源,对于推动当今高度发达和文明社会的飞速发展起着重要的主导地位,因而社会需求多媒体。二是随着计算机和影视工业以及通讯、数据处理等技术的成熟,为多媒体产业的发展提供了坚实的基础,并伴随着现代计算机、影视工业和娱乐行业的相互渗透和走向大同,多媒体的发展也就成为了现代科技发展的必然产物3。多媒体技术的网络化发展趋势。技术的创新和发展将使诸如服务器、路由器、转换器等网络设备的性能越来越高,包括用户端CPU、内存、图形卡等在内的硬件能力空前扩展,人们将受益于无限的计算和充裕的带宽,它使网络应用者改变以往被动地接受处理信息的状态,并以更加积极主动的姿态去参与眼前的网络虚拟世界【4】。从目前的发展趋势看可以把这种芯片分成两类:一类是以多媒体和通讯功能为主。融合CPU芯片原有的计算功能,它的设计目标是用在多媒体专用设备,家电及宽带通讯设备, 可以取代这些设备中的CPU及大量ASIC和其它芯片。另一类是以通用CPU计算功能为主,融合多媒体和通信功能,它们的设计目标是与现有的计算机系列兼容,同时具有多媒体和通信功能,主要用在多媒体计算机中【5】。 1.2 系统设计的目的和意义由于多媒体技术使计算机具有综合处理声音、文字、图像和视频信息的能力,它以形象丰富的声、文、图等信息和方便的交互性,极大地改善了人机界面,改变了使用计算机的方式,从而为计算机进入人类生活和生产的各个领域打开了大门。同时,多媒体计算机技术是信息高速公路架构的重要组成部分,是我国国民经济信息化的核心技术;多媒体计算机技术还是解决高清晰度电视(HDTV)、常规电视数字化、交互式电视(ITV-Interactive TV)、点播电视(VOD-Video On Demand)等问题的最佳方案;也是改造传统产业,特别是出版、印刷、广告、娱乐等产业的先进技术。如我国的印刷产业,1993年产值5000亿元,可以利用多媒体技术实现电子化,其中包括电子排版系统,电子出版物等将会有极大市场。因此,发展多媒体计算机技术必将对我国国民经济、科学技术和文化教育方面产生深远的影响6。由于多媒体系统需要将不同的媒体数据表示成统一的结构码流,然后对其进行变换、重组和分析处理,以进行进一步的存储、传送、输出和交互控制。所以,多媒体的传统关键技术主要集中在以下四类中:数据压缩技术、大规模集成电路(VLSI)制造技术、大容量的光盘存储器(CD-ROM)、实时多任务操作系统。因为这些技术取得了突破性的进展,多媒体技术才得以迅速的发展,而成为像今天这样具有强大的处理声音、文字、图像等媒体信息的能力的高科技技术7。1.3 研究背景 本设计采用的是Visual C+是Windows操作系统上常见的C+开发工具,是Microsoft公司推出的目前使用极为广泛的基于Windows平台的C+的可视化的开发环境。Visual C+ 6.0编译器负责将C+源代码编译成汇编文件,转变为中间文件,然后使用连接器将相关的中间文件连接起来,生成可执行的二进制文件。Visual C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境【8】。MFC(Microsoft Foundation Class)是用来编写Windows应用程序的C+类集,其中封装了大部分WindowsAPI函数和Windows控件,使用MFC类库和Visual C+提供的高度可视的应用程序开发工具,可使应用程序开发变得简单,提高代码的可靠性和可重用性。随着多媒体性能的极大提升,程序中经常要播放一段视频或者一段音频,如果能够简单地插入音频和视频,将极大缩短程序的开发时间。本文基于MFC在Visual C+环境下利用Windows Media Player控件实现了音频视频文件的播放。MFC,微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C+环境下编写应用程序的一个框架和引擎,VC+是WinDOS下开发人员使用的专业C+ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包,MFC作为与VC+血肉相连的部分(注意C+和VC+的区别:C+是一种程序设计语言,是一种大家都承认的软件编制的通用规范,而VC+只是一个编译器,或者说是一种编译器+源程序编辑器的IDE,WS,PlatForm,这跟Pascal和Delphi的关系一个道理,Pascal是Delphi的语言基础,Delphi使用Pascal规范来进行Win下应用程序的开发和编译,却不同于Basic语言和VB的关系,Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规范,VB新加的Basic语言要素,如面向对象程序设计的要素,是一种性质上的飞跃,使VB既是一个IDE,又成长成一个新的程序设计语言),MFC同BC+集成的VCL一样是一个非外挂式的软件包,类库,只不过MFC类是微软为VC+专配的。MFC是Win API与C+的结合,API,即微软提供的WinDOS下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对WinDOS下应用程序的开发,使这些被开发出来的应用程序能在WinDOS下运行,比如VB,VC+,Java,Dehpi编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在WinOS的消息机制和绘图里,遵守WinDOS作为一个操作系统的内部实现,这其实也是一种必要,微软如果不提供API,这个世上对Win编程的工作就不会存在,微软的产品就会迅速从时尚变成垃圾,上面说到MFC是微软对API函数的专用C+封装,这种结合一方面让用户使用微软的专业C+ SDK来进行Win下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多程序开发人员在Win下用C+ & MFC编制软件时的大量内节,如应用程序实现消息的处理,设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价(这是微软的一向作风),因此就造成了MFC对类封装中的一定程度的的冗余和迂回。最后要明白MFC不只是一个功能单纯的界面开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作,但它提供的类中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建,销毁),而是一些在WinDOS(用MFC编写的程序绝大部分都在WinDOS中运行)中实现内部处理的类,如数据库的管理类等,学习中最应花费时间的是消息和设备环境,对C+和MFC的学习中最难的部分是指针,C+面向对像程序设计的其它部分,如数据类型,流程控制都不难,建议学习数据结构C+版。 MFC是微软封装了的API。什么意思呢?windows作为一个提供功能强大的应用程序接口编程的操作系统,的确方便了许多程序员,传统的win32开发(直接使用windows的接口函数API)对于程序员来说非常的困难,因为,API函数实在太多了,而且名称很乱,从零构架一个窗口动辄就是上百行的代码。MFC是面向对象程序设计与Application framework的完美结合,将传统的API进行了分类封装,并且创建了程序的一般框架。 MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有100多个类,但常用的也就二三十个。应该象背4级单词一样将这些常用类搞懂;当然不要死记,要通过看帮助、看例子、动手练习来学会它们;而且,并非每个类的内部的所有函数都要学会,要日积月累。如果真的想成为高手,做个笔记本把自己认为重要的类、函数记下来,随时学习,也是很好的突击方法【18】。本论文采用的ActiveX控件。ActiveX是Microsoft提出的COM组件在网络环境中进行交互操作的一种标准,同时也是基于COM的开放技术集合,代表了应用程序与Internet的一种集成策略。ActiveX控件是基于COM的可重用组件,主要用于插入ActiveX控件包容器或Web页,ActiveX在外观上和使用上和普通控件一样,还提供属性页以支持在包容器的设计阶段对ActiveX控件的属性进行可视化设计。作为针对Internet应用而开发的技术,ActiveX广泛应用于Web服务器和客户端的各个方面,也可以用于普通桌面应用程序。在使用VC+6.0创建ActiveX控件包容器时,可以使用MFC。设计一个 ActiveX 控件如同设计一个 Visual Basic 窗体那样容易用户可以使用所熟悉的 Visual Basic 图形命令来画控件,或者使用已有的控件来创建一个控件组。ActiveX 控件可以在运行中调试,因此可以直接从调试窗体的代码跟踪到 ActiveX 控件工程的代码中。ActiveX 控件是一种可重用的软件组件,通过使用 ActiveX控件,可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能。如,StockTicker控件可以用来在网页上即时地加入活动信息,动画控件可用来向网页中加入动画特性。现在,已有1000多个商用的ActiveX控件,开发控件可以使用各种编程语言,如C,C+,下一代的Microsoft Visual Basic®,以及微软公司的 Visual Java开发环境Microsoft Visual J+。 ActiveX控件一旦被开发出来,设计 和开发人员就可以把它当作预装配组件,用于开发客户程序。以此种方式使用 ActiveX控件,使用者无需知道这些组件是如何开发的,在很多情况下,甚至不需要自己编程,就可以完成网页或应用程序的设计。就目前而言,多媒体技术已在商业教育培训、电视会议、声像演示等方面得到了充分应用。信息点播有桌上多媒体通信系统和交互电视ITV。计算机协同工作CSCW是指在计算机支持的环境中,一个群体协同工作以完成一项共同的任务。计算机的交互性,通信的分布性和多媒体的现实性相结合,将构成继电报电话、传真之后的第四代通信手段。多媒体技术给出版业带来了巨大的影响,其中近年来出现的电子图书和电子报刊就是应用多媒体技术的产物。利用多媒体技术可为各类咨询提供服务,如旅游、邮电、交通、商业、金融、宾馆等。多媒体技术还将改变未来的家庭生活,多媒体技术在家庭中的应用将使人们在家中上班成为现实。多媒体播放器,也叫RMVB播放器,一种可以在电视上播放网络视频文件的设备。如:暴风影音是Windows Media Player的补充和完善,当前暴风影音定位为一种软件的整合和服务而存在,并非一个特定的软件。它提供和升级了系统对常见绝大多数影音文件流行媒体的支持。多媒体技术是当今信息技术领域发展最快的、最活跃的技术,其发展的方向也是极其多样化,所以在人们的日常生活中,几乎随处可见其身影。本毕业设计就是通过在VC6.0开发平台上开发一个简单的音/视频播放器的过程,了解多媒体与多媒体技术及其在播放器中的应用,掌握多媒体技术开发相关技术及多媒体文件的访问与传播,同时利用软件工程的相关理论知识,了解软件开发的方法与步骤。多媒体技术已经成为当今比较热门的研究课题,特别是伴随着多媒体技术的网络化,使得多媒体技术的发展前景无限广阔。多媒体技术的网络化发展趋势。技术的创新和发展将使诸如服务器、路由器、转换器等网络设备的性能越来越高,包括用户端CPU、内存、图形卡等在内的硬件能力空前扩展,人们将受益于无限的计算和充裕的带宽,它使网络应用者改变以往被动地接受处理信息的状态,并以更加积极主动的姿态去参与眼前的网络虚拟世界。从目前的发展趋势看可以把这种芯片分成两类:一类是以多媒体和通讯功能为主。融合CPU芯片原有的计算功能,它的设计目标是用在多媒体专用设备,家电及宽带通讯设备, 可以取代这些设备中的CPU及大量ASIC和其它芯片。另一类是以通用CPU计算功能为主,融合多媒体和通信功能,它们的设计目标是与现有的计算机系列兼容,同时具有多媒体和通信功能,主要用在多媒体计算机中。 多媒体技术的发展使多媒体计算机将形成更完善的计算机支撑的协同工作环境,消除了空间距离的障碍,也消除了时间距离的障碍,为人类提供更完善的信息服务。交互的、动态的多媒体技术能够在网络环境创建出更加生动逼真的二维与三维场景,人们还可以借助摄像等设备,把办公室和娱乐工具集合在终端多媒体计算器上,可在世界任何角落与千里之外的同行在实时视频会议上进行市场讨论、产品设计,欣赏高质量的图像画面。新一代用户界面(UI)与智能人工(Intelligent Agent)等网络化、人性化、个性化的多媒体软件的应用还可使不同国籍、不同文化背景和不同文化程度的人们通过“人机对话”,自由地沟通与了解。 多媒体终端的部件化、智能化和嵌入化发展趋势。目前多媒体计算机硬件体系结构,多媒体计算机的视频音频接口软件不断改进,尤其是采用了硬件体系结构设计和软件、算法相结合的方案,使多媒体计算机的性能指标进一步提高,但要满足多媒体网络化环境的要求,还需对软件作进一步的开发和研究,使多媒体终端设备具有更高的部件化和智能化【10】。 嵌入式多媒体系统可应用在人们生活与工作的各个方面,在工业控制和商业管理领域,如智能工控设备、POSATM机、IC卡等;在家庭领域,如数字机顶盒、数字式电视、WebTV、网络冰箱、网络空调等消费类电子产品,此外,嵌入式多媒体系统还在医疗类电子设备、多媒体手机、掌上电脑、车载导航器、娱乐、军事方面等领域有着巨大的应用前景【11】。 现在多媒体技术正向二个方而发展:一是网络化发展趋势,与宽带网络通信等技术相互结合,使多媒体技术进入科研设计、企业管理、办公自动化、远程教育、远程医疗、检索咨询,文化娱乐、自动测控等领域;二是多媒体终端的部件化、智能化和嵌入化,提高计算机系统本身的多媒体性能,开发智能化家电。多媒体有三个关键特性:多样性、交互性和集成性。信息载体的多样性是多媒体的主要特征之一,也是多媒体研究需要解决关键问题。信息载体的多样化是相对计算机而言的,指的就是信息媒体的多样化。把计算机所能处理的信息空间范围扩展和放大,而不在局限于数值、文本或特殊对待的图形和图象,这是计算机变得更加人类化所必须的条件。多媒体就是要把机器处理的信息多维化,通过信息的捕获、处理与展现,使之交互过程中具有更加广阔和更加自由的空间,满足人类感官空间全方位的多媒体信息需求。多媒体的第二个关键特性是交互性。它将向用户提供更加有效的控制和使用信息的手段和方法,同时也为应用开辟了更加广阔的领域。交互可做到自由地控制和干预信息的处理,增加对信息的注意力和理解,延长信息的保留时间。当交互性引入时,活动本身作为一种媒体便介入了信息转变为知识的过程。借助于“活动”,我们可以获得更多的信息。媒体信息的简单检索与显示,是多媒体的初级交互应用;通过交互特性使用户介入到信息的活动过程中,才达到了交互应用的中级水平;当用户完全进入到一个与信息环境一体化的虚拟信息空间自由遨游时,这才是交互应用的高级阶段,这有待于虚拟现实或临境技术的进一步研究和发展。多媒体的集成性应该说是在系统级上的一次飞跃。早期多媒体中的各项技术和产品几乎都是由不同厂商根据不同的方法和环境开发研制出来的,基本上只能单一、零散和孤立地被使用,在能力和性能上很难满足用户日益增强的信息处理需求。但当它们在多媒体的旗帜下大会师时,一方面意味着技术已经发展到相当成熟的程度,一方面也意味着各自独立的发展不再能满足应用的需要。信息空间的不完整,开发工具的不可协作性,信息交互的单调性等都将严重地制约和限制着多媒体系统的全面发展。因此,多媒体的集成性主要表现在两个方面:多媒体信息的集成和操作这些媒体信息的工具和设备的集成。对于前者而言,各种信息媒体应能按照一定的数据模型和组织结构集成为一个有机的整体,以便媒体的充分共享和操作使用是非常重要的。多媒体的各种处理工具和设备集成,强调了与多媒体相关的各种硬件的集成和软件的集成,为多媒体系统的开发和实现建立一个理想的集成环境,目的是提高多媒体软件的生产力【12】。1.4 论文主要研究内容及论文结构安排本毕业设计是制作一个可播放目前主流媒体格式的多媒体播放器,其基本功能应具有媒体播放、音量调节、播放进度选择、暂停、停止以及歌曲信息的查询与添加等,使之成为一款简易的媒体播放设备,能够完美的播放市面上大多数的音频、视频文件。论文的结构安排:第一章 绪论介绍研究背景,目的和意义等;第二章 开发工具介绍,软件的需求分析和模块设计;第三章 数据模型分析及设计;第四章 多媒体播放器软件设计;第五章 程序运行流程图和播放器实现结果演示;第六章 总结与展望,主要对论文进行总结和今后研究设想;最后是参考文献和附录的相关内容。 第二章 开发平台介绍和软件的初步设计2.1开发平台的介绍 VC+6.0是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C+语言的要求编写,并加入了微软提供的功能强大的MFC(Microsoft Foundation Class)类库。MFC中封装了大部分Windows API函数和Windows控件,它包含的功能涉及到整个Windows操作系统。MFC不仅给用户提供了Windows图形环境下应用程序的框架,而且还提供了创建应用程序的组件,这样,开发人员不必从头设计创建和管理一个标准Windows应用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间。另外,它提供了大量的代码,指导用户编程时实现某些技术和功能。因此,使用VC+提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。VC+6.0有很好的调试功能。在本次设计中,程序设计环境采用Visual C+ 6.0。VC基于C,C+语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在 Windows平台无所不能。 但其最大缺点是开发效率不高。VC适用范围: 1、 VC主要是针对Windows系统,适合一些系统级的开发,可以方便实现一些底层 的调用。在VC里边嵌入汇编语言很简单。 2、 VC主要用在驱动程序开发 。3、 VC执行效率高,当对系统性能要求很高的时候,可用VC开发。 4、 VC主要适用于游戏开发 5、 VC多用于单片机,工业控制等软件开发,如直接对I/O地址操作,就要用C+。 6、 VC适用开发高效,短小,轻量级的COM组件,DLL。比如WEB上的控件。 7、 VC可以开发优秀的基于通信的程序。 8、 VC可以开发高效灵活的文件操作程序。 9、 VC可以开发灵活高效的数据库操作程序。 10、 VC是编CAD软件的唯一选择。包括AUTOCAD,UG的二次开发。 11、VC在多线程、网络通信、分布应用方面,VC+有不可比拟的优势。在VC+ 中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音方法就是直接调用VC+中提供的声音播放函数BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中参数lpszSound是需要播放声音的.WAV文件的路径和文件名, hmod在这里为NULL,fuSound是播放声音的标志,详细说明请参考VC+中的帮助。 例如播放C:s.wav可以用sndPlaySound (c:soundmusic.wav,SND_ASYNC);或PlaySound(c:soundmusic.wav,NULL, SND_ASYNC|SND_NODEFAULT );如果没有找到music.wav文件,第一种格式将播放系统默认的声音,第二种格式不会播放系统默认的声音。在VC+的程序设计中,可以利用各种标准的资源,如位图,菜单,对话框等。同时VC+也允许用户自定义资源,因此我们可以将声音文件作为用户自定义资源加入程序资源文件中,经过编译连接生成EXE文件,实现无.WAV文件的声音播放10。 比如:F9在当前光标所在的行下断点,如果当前行已经有断点,则取消断点。F5调试状态运行程序,程序执行到有断点的地方会停下来。F10单步执行程序。CTRL+F10运行到光标所在行。F11和F10的区别是,如果当前执行语句是函数调用,则会进入函数里面。SHIFT+F11跳出当前所在函数。ActiveMovie控件是微软公司推出的用于多媒体程序设计的控件,它提供了非常完善的音频和视频媒体文件的回放功能,能支持多种文件格式,从最常见的WAV文件和AVI文件到使用MPEG压缩格式的VCD视频文件,都可以正常的进行播放。控件能根据文件后缀进行自动判别设备类型,并完成相应的控制。因此,若正在编写的应用程序需要提供多媒体支持,那么使用ActiveMovie控件是一个很好的主意。事实上,很多优秀的多媒体应用程序,其内部的多媒体回放就是利用ActiveMovie控件来实现。只要精心地设计应用程序的用户界面,我们一样可以开发出功能齐全、外观漂亮、具有相当水准的多媒体播放器。而且,在Windows 95/98和Windows NT的最新版本中,ActiveMovie控件已作为操作系统的一部分来提供,即使用户系统中没有安装ActiveMovie控件,Microsoft的许可协议也允许在你的应用程序的发行包中发布ActiveMovie的运行时文件。ActiveMovie是一个OCX控件,Windows 98没有单独提供对它的添加和删除选项,你可以首先运行Windows 98的系统文件检查器(如果附件中找不到,可从Windows 98的帮助文件中直接启动),让它检查一下系统文件,看看能否恢复,如果不能,你可以在图形界面中重装一次Windows 98,受损的文件就能恢复。另外,建议你安装新版的媒体播放器(MediaPlayer,可到微软的站点下载),其功能要比ActiveMovie强得多,并且支持更多的多媒体文件类型【13】。2.2 软件的需求分析和模块设计2.2.1软件的需求分析本软件要求实现的基本功能是实现音/视频文件的播放,要求实现的控制功能是播放、暂停、声音的大小控制、全频、关闭、停止、播放的拖放等功能。根据这些要求,需要有相应的软/硬件来支持,硬件的方面的要求是计算机要有声卡和集成显卡,软件方面的要求:windows XP系统、VC+6.0。要实现对已添加的多媒体文件的播放。这需要就要编写c+程序实现对数据库中文件的查找、添加、删除等基本的功能。而实现这些功能又要求实现数据库的连接要成功。在这一模块中,需要选择数据库,有两种最常用的数据库。即Microsoft Access数据库和Microsoft SQL Server。Microsoft Access是一种桌面数据库,只适合数据量少的应用。Microsoft Access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器IIS假死,或者消耗掉服务器的内存导致服务器崩溃。Microsoft SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Microsoft Access要强得多。采用了access数据库,因为这个数据库比Microsoft SQL sever 要更适合于小型软件。本论文采用的是Visual C+是Windows操作系统上常见的C+开发工具,是Microsoft公司推出的目前使用极为广泛的基于Windows平台的C+的可视化的开发环境。Visual C+ 6.0编译器负责将C+源代码编译成汇编文件,转变为中间文件,然后使用连接器将相关的中间文件连接起来,生成可执行的二进制文件。Visual C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境【14】。Microsoft Access在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。它也常被用来开发简单的WEB应用程序这些应用程序都利用ASP技术在Internet Information Services运行比较复杂的WEB应用程序则使用PHP/MySQL或者ASP/Microsoft SQL Server. 它的使用方便程度和强大的设计工具为初级程序员提供许多功能。不过,这种便于使用可能使人误解。这类开发者都是没有在应用或者数据设计方面训练的办公室从业人员。因此许多人以为这样的开发者能够创造可用的系统,但也有很多人认为工具本身的局限性产生了这样的误导。 一些专业的应用程序开发人员使用 Access 用作 快速应用开发,特别是给街道上的推销员制作一个初型或独立应用程序的工具。可是如果是透过网络存取数据的话,Access 的可扩放性并不高因此当程序被较多使用者使用时,他们的选择多会是倾向于一些客户端-服务器为本的方案,例如 Oracle、DB2、Microsoft SQL Server、Windows SharePoint Services、PostgreSQL、MySQL、Alpha Five、MaxDB,或者Filemaker。无论如何,不少 Access 的功能(表单,报告,序列和VB代码)可以用作其他数据库的后期应用,包括 JET(档案为主的数据库引擎,Access 缺省使用)、Microsoft SQL Server、Oracle和任何其他跟ODBC兼容的产品。这种方法允许开发者把一个成熟的应用的数据移动到一台更大功率的服务器而没有已经在适当的位置牺牲发展。很多开发者谁使用Microsoft Access使用Leszynski命名约定,虽然这不普遍;它是一次编程大会,并非一个DBMS实施的规章【15】。2.2.2软件的模块设计 该播放器分为十个模块,根据ActiveMovie控件实现它们各自相应的功能。多媒体播放器打开模块关闭模块播放模块暂停模块停止模块全频模块音量模块循环模块查询模块添加模块 图2.1 播放器的模块划分 打开模块:打开目标文件,如音频、视频文件。 关闭模块:关闭播放器。 播放模块:播放音频、视频文件。 暂停模块:暂时停止正在播放的音/视频文件。 停止模块:结束当前音/视频文件的播放,但不退出播放器。全频模块:实现文件的全频播放。音量模块:调节音量大小。循环模块:实现播放列表中的全部文件的循环播放。查询模块:根据歌曲名称,查询歌曲信息,歌曲信息包含如下内容:歌曲名称、歌手、作词、作曲、专辑名称。添加模块:添加歌曲信息。第三章 数据模型分析与设计3.1 数据需求分析通过对多媒体播放器的功能和数据流程分析,设计的数据项和数据结构如下:l 多媒体静态数据:主要是包括界面的设置,控键等等。l 多媒体动态数据:解码信息流、声音流、图象流等。l 歌曲的基本信息:包括的数据库项有歌曲名称、歌手姓名、作词、作曲,所属专辑名称,发行年月等。因为本程序中只涉及到歌曲的基本信息,为了简单说明,在数据库中只包含了与歌曲有直接关系的数据项。3.2 数据库概念结构设计l 多媒体播放模块,其数据流图如图3.1:声音流声音控制合成声卡输出显卡输出显示叠加字幕信息显示控制图像编码图像流解码信息流解码器获取文件信 息视频文件音频文件解码图3.1 媒体播放数据流图l 歌曲信息的设计规划出的实体有:歌曲信息实体、歌手实体、作词实体、作曲实体、专辑名称实体。实体和实体之间的关系E-R图如图3.2所示:歌曲歌曲信息对应对应歌曲名称歌手作词作曲专辑名称 图3.2 实体之间的关系E-R图3.3 数据库的逻辑结构设计为数据库歌曲信息表添加如下数据表:图3.3 歌曲信息表结构图3.4 信息详情表结构创建数据源,即为数据库创建用户DSN,数据源名称为“ 歌曲信息”,如图3.5:图3.5 创建数据源3.4 数据库结构的实现在需求分析、概念结构设计的继承上得数据库的逻辑结构之后,我们就可以在VC+6.0数据库系统中实现该逻辑结构。数据库的逻辑结构,直接使用VC+6.0的项目管理器来实现,在这之前,先建一个名为le的项目,保存在磁盘。如D:le。存储为D: ledatabase歌曲信息.dbc。为数据库添加数据表,存储为D:ledatabase 歌曲信息.dbf.第四章 多媒体播放器软件设计4.1 模块实现函数说明这些实现模块功能的具体函数均属于CMediaPlayerDlg类,它是在建立MediaPlayer工程时由MFC建立的一个对话框的类,在该对话框上进行的操作函数即可实现程序所需要的所有功能,其实现函数则是调用ActiveMovie控件的相关函数,从而完成各项具体功能。各个模块的具体实现函数描述见下表4.1所示: 表4.1 模块函数列表模块名称实现函数打开模块void CMediaPlayerDlg:OnOpen()关闭模块void CMediaPlayerDlg:OnClose()播放模块void CMediaPlayerDlg:OnPlay()暂停模块void CMediaPlayerDlg:OnPause()停止模块void CMediaPlayerDlg:OnStop()全屏模块void CMediaPlayerDlg:OnFulscreeen()音量模块void CMediaPlayerDlg:OnLower()void CMediaPlayerDlg:OnUpper()void CMediaPlayerDlg:OnMute()循环模块void CMediaPlayerDlg:OnRepeat()void CMediaPlayerDlg:OnTimer()查询模块void CMediaPlayerDlg:OnChaxun()添加模块void CMediaPlayerDlg:OnTianjia()4.2 主要变量声明程序中用到的主要控件有:1个ActiveMovieControl 、1个列表框、12个按钮。各个控件变量的声明参见下表4.2: 表4.2 变量声明列表控件名称变量类型变量名说明IDC_LIST1CListBoxm_list播放列表IDC_ACTIVEMOVIECONTROL1CActiveMovie3m_ActiveMovie可视动画控件IDC_OPENCButtonm_Open打开、添加文件IDC_STOPCButtonm_Stop停止播放IDC_CLOSECButtonm_Close关闭当前播放IDC_LOWERCButtonm_Lower降低音量IDC_PLAYCButtonm_Play循环播放IDC_PAUSECButtonm_Pause暂停IDCANCELCButtonm_Exit退出IDC_UPPERCButtonm_Upper增大音量IDC_FULSCREEENCButtonm_FullScreen全屏IDC_REPEATCButtonm_Repeat循环控制IDC_EDIT1CStringm_Edit1查询编辑框IDC_GEQUCStringm_Gequ歌曲名称编辑框IDC_GESHOUCStringm_Geshou歌手编辑框IDC_ZUOCICStringm_Zuoci作词编辑框IDC_ZUOQUCStringm_Zuoqu作曲编辑框IDC_ZHUANJICStringm_Zhuanji专辑名称编辑框4.3 设计多媒体播放器的界面播放器主界面设计如图4.1:图4.1 主界面4.4 播放器模块设计为界面添加ActiveMovie Control Object控件,以及打开、关闭、播放、暂停、停止、全屏、循环等按钮控件,ActiveMovie Control Object控件的添加过程如图4.2所示:图4.2 添加ActiveMovie Control Object控件ActiveMovie关键函数说明可视动画控件ActiveMovie Control Object 是Microsoft公司开发的ActiveX控件,为程序员提供了在该层次上控制媒体设备接口的能力。它包含一组高层次的独立于设备的命令,可以控制音频和视频外设,我们不必关心具体的设备便可以对CD、视盘机、波形音频设备、视频播放设备和MIDI设备等媒体设备进行控制,也可以理解成设备面板上的一排按键,通过选择不同的按键(发送不同的命令)即可让设备完成各种功能,而不必关心设备的内部实现,它是一种主要实现音/视频播放的方法。下面对播放器程序需要调用的相关函数做简要说明:(1)播放文件的函数: void CActiveMovie3:Run() InvokeHelper(0x60020001,DISPATCH_METHOD,VT_EMPTY,NULL, NULL); (2)暂停播放的函数: void CActiveMovie3:Pause() InvokeHelper(0x60020002,DISPATCH_METHOD,VT_EMPTY,NULL, NULL); (3)停止播放的函数: void CActiveMovie3:Stop() InvokeHelper(0x60020003,DISPATCH_METHOD,VT_EMPTY,NULL, NULL); (4)设置音量的函数: void CActiveMovie3:SetVolume(long nNewValue) static BYTE parms = VTS_I4; InvokeHelper(0x13, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, nNewValue); 4.5 功能模块设计程序中的播放模块、暂停模块、停止模块、音量模块等功能模块只需要直接调用控件中的函数即可实现,为各控件添加成员变量如图4.3所示: 图4.3 为控件添加成员变量(1)为了将所需播放的文件加入列表框,我们采用OnOpen()函数来显示打开对话框通过该对话框选择要执行的文件。以便为以后调用作准备。代码如下:void CMediaPlayerDlg:OnOpen() char szFileFilter= 所有文件(*.*)|*.*|; /可选择不同格式的媒体文件CFileDialog fileDialog(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter); if (fileDialog.DoModal() = IDOK) /消息响应函数 CString m_FileName=fileDialog.GetPathName();/选择文件 m_list.AddString(m_FileName); /加入到列表框 (2)为了循环播放,我们利用定时器来工作,采用OnTimer()函数来激活定时器,代码如下:void CMy1Dlg:OnTimer(UINT nIDEvent)CString m_filename; /定义文件变量double CurPos=m_ActiveMovie.GetCurrentPosition(); /获得播放位置if(CurPos= = 0)m_list.SetCurSel(0); /选择列表框的第一个文件m_list.GetText(0,m_filename);m_ActiveMovie.SetAutoStart(1); /设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论