毕业设计多媒体播放器的设计摘要本文主要是开发了一款简单的多媒体播放器。
可以播放多种格式的音频、视频文件,该播放器实现了的基本功能包括:音频视频文件的打开、添加到菜单、媒体的播放、音量大小的调节、播放时间的拖动、暂停播放、停止以及歌曲信息的查询与添加等。
使之成为一款简易的媒体播放设备,能够完美的播放市面上大多数的音频、视频文件。
在毕业设计中,系统开发平台为Windows XP操作系统,程序设计环境采用Visual C++ 6.0。
在程序设计中,利用了微软公司开发的ActiveX 控件——可视动画控件ActiveMovie,程序通过调试运行,初步实现了设计目标,本程序是基于MFC集成开发环境,利用ActiveMovie控件实现媒体播放的功能的,除了基本的播放控制外,还具有多文件自动顺序循环播放、全屏播放、静音等实用功能。
关键字:多媒体;播放器;Active控件目录第一章绪论 (1)1.1 引言 (1)1.2 系统设计的目的和意义 (1)1.3 研究背景 (2)1.4 论文主要研究内容及论文结构安排 (7)第二章开发平台介绍和软件的初步设计 (8)2.1开发平台的介绍 (8)2.2 软件的需求分析和模块设计 (10)2.2.1软件的需求分析 (10)2.2.2软件的模块设计 (11)第三章数据模型分析与设计 (12)3.1 数据需求分析 (12)3.2 数据库概念结构设计 (12)3.3 数据库的逻辑结构设计 (14)3.4 数据库结构的实现 (14)第四章多媒体播放器软件设计 (15)4.1 模块实现函数说明 (15)4.2 主要变量声明 (16)4.3 设计多媒体播放器的界面 (17)4.4 播放器模块设计 (18)4.5 功能模块设计 (19)4.6 歌曲信息模块的设计 (22)第五章程序实现结果 (27)5.1 程序运行流程图 (27)5.2 播放器实现结果演示 (27)第六章总结与展望 (33)参考文献 (34)致谢....................................................................................................................................... 错误!未定义书签。
第一章绪论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++版。