多媒体播放器系统设计 毕业设计_第1页
多媒体播放器系统设计 毕业设计_第2页
多媒体播放器系统设计 毕业设计_第3页
多媒体播放器系统设计 毕业设计_第4页
多媒体播放器系统设计 毕业设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、成都理工大学2011届本科毕业设计(论文)多媒体播放器系统设计摘 要 随着科技的进步,软件的发展已经不在满足其单一的需求,而是需要其越来越多元化来满足现在市场的需求。随着世界的发展,人们的生活水平的提高,我们所追求的事物以不在是仅仅单一话,我们所需要的是满足我们自己生活水平的多元化的空间,在技术日新月异的今天,出现的产物也是多元化,以满足人们的需求。播放器不再仅仅以播放音乐为唯一,而是集聚音乐,视屏,图片与一体的播放器。该系统主要以音频播放器模块,视频播放器模块,图片播放器模块三大模块组成,从而实现视频,音乐,图片的播放。该播放器主要以mfc为技术支持,它是一个微软公司提供的类库,以c+类的形

2、式封装了windows的api,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量windows句柄封装类和很多windows的内建控件和组件的封装类。mfc不只是一个功能单纯的界面开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作,但它提供的类中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建,销毁),而是一些在windows中实现内部处理的类,如书籍库的管理类等,学习中最应花费时间的是消息和设备环境,对c+和mfc的学习中最难的部分是指针,c+面向对象程序设计的其它部分,如数据类型,流程控制都不难,建议学习数据

3、结构c+版。 本系统界面友好,使用方便,交互性良好。满足播放器的一切基本要求。关键词:mfc 播放器 音乐 视频 图片media playersystem designabstract:with the progress of science and technology, software development has not meet its single demand, but need more multiple to meet the needs of the market now.along with the development of the world, peoples s

4、tandard of living rise, we are pursuing with not is just a single thing words, all we need is to meet our own life level of diversification in the space of technology are developing rapidly, the product of today, there is diversity, to meet peoples needs. media player to play music player not just f

5、or the only music, but agglomeration, monitor, pictures and integration of the player. this system mainly audio player module, video player module, photo player module three modules, video, music, so as to realize the image playback. this player mainly mfc for technical support, it is a microsoft pr

6、ovides class library, with the form of c + + classes encapsulates windows api, and contains an application framework, in order to reduce the workload of applications developers. including class contains a number of windows handle encapsulation type and many windows built-in control and component pac

7、kaging categories. mfc is not just a function simple interface development system, it provides most of the kind used to interface development, connecting a window movements, but it provides a better class of category is associated with a window that kind of action is not an interface class, not real

8、ize the control of a window object (e.g. created, destroyed), but some in windows implement internal processing classes, such as books, such as library management in learning is the most should spend time for news and equipment environment, c + + and mfc learning is the toughest part of a pointer, c

9、 + + object-oriented program design, such as the other parts of the data types, and process control are hard, suggest learning data structure c + + edition. this system friendly interface, easy to use, interactivity is good. meet the basic requirements of the player。keywords: mfc music video picture

10、s. player32目 录第1章 前言2第2章 文档概述32.1文档目的和范围32.2术语/缩略语32.3参考文档3第3章 系统结构图4第4章 模块总体概述64.1界面模块64.1.2 主界面模块结构84.2播放器模块94.2.1音频播放器模块94.2.2视频播放器模块114.2.3图片播放器模块134.3 数据库模块16第5章 数据库设计195.1数据库引擎概述195.2数据库概要设计20第6章 系统详细设计236.1音频模块236.2图片模块266.3视频模块27结论29致谢31参考文献32第1章 前言随着科技的发展,软件播放器的市场的竞争日趋激烈,全面提高播放器的功能,增强播放的实用性

11、越来越重要。传统的播放器已经不能满足现代人的需求,它单一的功能满足不了现在多元化的要求。因此,在这个多元化的世界里,我们的软件系统也同样需要多元化的发展。播放器版本众多,什么sp、什么realone、什么gold,看起来挺复杂,但通过简单的查阅,他们还是有一些的规律。捡我们比较熟悉的说,从最早的realone开始,之后回归到realplayer正统名称realplayer10,在中国还专门为中国用户推出过一个10.6版本,增加了一些本地化的内容。在之后就是realplayer11,增加了适应用户网络发展的功能,例如“一键下载网络视频”。再之后出现的就是realplayer sp,虽然主体名称没

12、有改变,但是版本号却没有使用12,而是用了一个代号性质的sp,但实际上就是12,功能上在11的基础上再次增加了一些辅助功能,如“修剪视频”、“格式转换”、“设备传输”、“社区分享”等等,这些网络功能也还是比较实用的。 在科技飞速进步的今天,人们对事物的需求也已经不在是单单的某一方面,而是多方面多功能的需求。media player 功能:允许用户从本地添加单一文件或包含媒体文件的文件夹,在已经添加的文件中能进行删除选中文件以及删除全部文件的操作;jane 浏览、播放已添加的音频文件(支持mp3/wma);浏览、播放已添加的图片文件 (支持jpg/png/gif/bmp);浏览、播放已添加的视频

13、文件 (支持wmv/avi/asf);能创建、编辑、添加、修改playlist(支持最多10个playlist,每个playlist中最多支持100个文件);最近播放列表中能保存最近播放的10个文件;能对添加的文件进行分类,不同的媒体文件有不同的分类方法第2章 文档概述2.1文档目的和范围该文档是根据需求跟踪矩阵和需求分析而来,主要是为了将用户的需求转换为对系统的设计,明确设计的主要任务,将用户的需求进一步细化,并且该文档是作为详细设计和软件测试及维护等后期工作的主要依据。2.2术语/缩略语表2-1 gdi序号术语/缩略语说明1gdi+gdi+是windows xp中的一个子系统,它主要负责在

14、显示屏幕和打印设备输出有关信息,它是一组通过c+类实现的应用程序编程接口。2.3参考文档 表2-2 文档序号文档名作者时间版本1需求跟踪矩阵魏莱2011-5-270.8.32需求分析报告魏莱2011-5-270.8.3第3章 系统结构图图3-1 系统结构图 系统结构主要为播放器的整体设计操作,主要有其中四大模块组成(数据库层,文件解析,界面层,播放器层)。这四大模块组成整个播放的程序过程,四大模块之间相辅相成,才能提供整个播放器的运行环境。第4章 模块总体概述在neusoft media player中分为三大部分:界面层、播放器层、数据库层。这三个大层能细分为以下五个模块:总体结构的基本控制

15、模块、音频模块、视频模块、图片模块、数据库模块。三个大层间建立有相互通信的接口。4.1界面模块主界面是用户与neusoft media player直接交互最频繁的模块,同时neusoft media player通过它响应用户操作,并返回相应的结果。在neusoft media player初始化过程中,主界面将通过数据库提供的接口获取相关信息并显示在相应的列表中。如果是首次使用,则提示用户设置默认监视目录、文件分类方式、创建playlist并显示监视目录下所有文件;否则,将上次退出程序时数据库保存的信息读出显示。用户在使用neusoft media player的过程中,还可以通过单击功能

16、切换按钮(图片、视频或音频)同步更新主界面中各列表所包含的信息。这将触发目录监视和读取数据库信息,以实时填充主界面中各个列表(分类列表、文件列表、最近播放列表、最爱播放列表)。对于图片和视频的播放,主界面并不直接参与,只是给图片和视频播放器提供一个接口,将选中文件的文件名和路径传递给它们(图片和视频播放器),让其调用。音频播放是在主界面中内嵌实现的:当用户进行各种操作时,将触发主界面模块调用音频播放模块来响应用户请求。用户对主界面所有列表(分类列表、文件列表、最近播放列表、最爱播放列表)的各种操作,如增加、修改、删除 (如果是物理文件还要涉及对本地文件夹处理接口的调用),都需要逆向执行程序初始

17、化的过程-如当用户触发更改命令时,首先要将更改信息传给列表,列表传给数据库,统一更改。在涉及物理文件删除的地方,还要执行本模块的删除物理文件操作,同时进行文件监视。4.1.1界面模块功能定义 本模块主要是实现与用户的交互,用户触发命令后调用其他模块提供的接口。本模块提供给其它模块的接口只有一个,即传递选中文件的信息的集合。本模块主要功能具体如下 表4-1 主界面模块功能定义序号功能点功能点详细说明1文件信息接口供调用者(视频、图片模块)获取选中文件的文件名和路径2初始化、功能切换进入后调用目录监视和数据库接口,填充列表3添加、删除对列表进行添加、删除,调用外部接口处理数据库(所有同样功能的按钮

18、)4查询调用外部接口实现用户输入数据的检索(所有同样功能的按钮)5删除物理文件对列表进行删除,调用外部接口处理数据库,调用本模块函数删除物理文件(所有同样功能的按钮)6播放视频、图片通过外部接口7音频播放从选中列表得到信息,调用本模块函数播放8排列方式选择不同的排列方式,把排列后的结果显示在左侧列表9设置监视目录在首次使用软件和以后的使用中都能设置4.1.2 主界面模块结构图4-1 界面模块结构图主界面模块主要是播放器3大功能的操作,在选择音频,视频,图片中的任意一种模式进行播放器的播放操作,主要实行添加文件,删除文件,以及主页面中的一些关键操作。表4-2 主界面模块接口说明序号模块名称接口函

19、数函数说明1选中列表 carray getplaylist()返回选中项目的文件名、路径和数目给调用者4.2播放器模块4.2.1音频播放器模块本模块为程序“播放器模块”下的子模块。主要负责将音频类文件进行解码,获取音频文件的基本信息,写入数据库;实现音频文件的播放和播放控制操作,以及在播放音频文件时实现多个播放模式的变换,本模块与界面层及数据库之间都存在接口。1) 音频播放器模块功能定义表4-3 音频播放器模块功能定义序号功能点功能点详细说明1音频播放播放已添加的音频文件 (支持mp3/wma)。2专辑封面显示将所选音频的专辑封面显示在主界面的指定位置中。3播放控制点击相应按钮进行暂停,停止,

20、上一曲,下一曲,重播功能。4播放顺序设置实现单曲播放,单曲循环,顺序播放,循环播放,随机播放功能。5音频分类点击相应选项根据音频信息进行筛选。6音量控制实现音量大小调节,以及静音功能音频播放器模块结构图4-3 音频播放器模块结构图音频播放器模块主要生成音频在播放器中的功能。在播放的情况下,可以自由切换歌曲,拖动进度条快进或快退,暂停播放中的歌曲。播放模式的选择中可以选取单曲循环,顺序循环,多曲循环,单曲播放,随机播放5大播放模式。 表4-4 音频模块接口说明序号模块名称接口函数函数说明1cmusicplayerinit初始化音乐播放器2cmusicplayeraddmusic添加音乐到播放队列

21、3cmusicplayerrecvsingal获取音乐播放控制信息4cmp3readfile读取音乐文件5cmp3showimage显示专辑封面6cmp3getfileinfo获取音乐文件信息4.2.2视频播放器模块本模块完成对视频的各种操作并提供打开本模块的接口。当用户点击主界面视频播放按钮后,本模块启动,从主界面提供的接口获得待播放的视频文件名和路径名,并放入播放列表。视频播放器将自动启动并播放列表中的首个条目,如果有控制操作(点击播放/暂停键、下一集、上一集、停止键、播放列表项或者拖动播放进度控制条)则改变更新播放状态。本模块对话框还支持最大化,最小化和拖动边框改变界面大小的功能。1)

22、视频模块功能定义 表4-5 视频模块功能定义序号功能点功能点详细说明1播放功能当播放列表中导入文件时将以顺序模式播放节目,点击播放键或者双击列表中所要播放的节目以实现播放。2上一集点击上一集则播放当前视频文件的前一项,如无则此按键无效。3下一集点击下一集则播放当前视频文件的后一项,如无则此按键无效。4暂停暂停当前正在播放的视频文件,当下次再选择播放按钮时将继续播放。5停止将正在播放的视频文件停止,当下次再选择播放按钮时将重新播放这个视频。6重播如为播放状态则重播当前视频,如为停止状态则播放最后一次播放的视频。7音量用户根据自己的需要拖动滑动条增加或者减小音量。 8静音点击后将暂时关闭声音。9窗

23、口拖动拖动窗口来改变窗口大小。10右键功能进行播放、暂停、停止、打开文件、全屏播放、退出等操作。视频模块结构图4-5 视频模块结构图 视频模块结构主要阐述视频播放器中视频播放器的功能。它可以在格式要求的情况下自由添加视频进行播放。在播放过程中可以自由拖动进度条,点击上一集或者下一集,可以暂停播放以及重复播放次添加视频。4.2.3图片播放器模块本模块为程序“播放器模块”下的子模块。主要负责将图片文件进行解码,获取图片文件的基本信息,写入数据库;实现图像文件的浏览和简单的图像变换操作,以及在浏览多张图像文件时可进行动态浏览,并附加上用户可选择的过渡效果。本模块与界面层及数据层之间都存在接口。1)

24、图片播放器模块功能定义表4-6 图片播放器模块功能定义序号功能点功能点详细说明1图像浏览浏览已添加的图像文件 (支持jpg/png/gif/bmp)。2缩略图显示将所选图像的缩略图显示在主界面以及已选列表中。3图片放大缩小点击放大/缩小按钮和鼠标的滚轮时,能对播放中的图片进行大小调整。4静态播放控制点击相应按钮显示播放当前图片的上一张、下一张,以及用鼠标点击图片显示区域的左半部分和右半部分可以实现播放。5静态播放图片旋转点击顺时针/逆时针旋转按钮,能将播放中的图片进行相应的90旋转,旋转后的状态在下一次播放时不保存。6动态播放控制点击相应按钮实现多张图片动态播放的暂停、播放、停止。7动态播放时

25、间设定在对多张图片进行自动播放的时候,设置各张图片之间的播放时间间隔,使得播放时有一定的延时。未设置时有默认值。8动态播放过渡效果设置在对多张图片进行自动播放的时候,选择设置各张图片之间切换的过渡效果。未设置时无过渡效果。2) 图片播放器模块结构图4-6图片播放器模块结构图 图片播放器模块结构主要提供播放器中图片播放模块的的一些操作,功能。添加选定的图片后,可以自己调节图片大小,旋转变换,手动点击切换图片,也可以自动设计图片切换时间和一些过渡的效果。本模块主要实行图片播放器的主要功能。3) 图片播放器模块类图图4-7图片播放器模块类图类图说明:graphics和image为gdi+中提供的绘制

26、图像的类cmyscrollbar 和 cimagecontrol为图片显示的区域相关类cimageshowdlg 为显示时的一些控制相关的类 表4-7 图片播放模块接口说明序号模块名称接口函数函数说明1图片显示控制模块carray getinfo()在打开图片播放窗口时获取相关图片属性信息,包括路径、文件名、类型、大小、尺寸、长度、相机类型、创建日期2图片显示控制模块int getcount()获取主界面返回的将播放的图片的数量3图片显示控制模块bool setpreview()设置主界面的单张图片的预览图4 图片显示控制模块bool savelastplay()将图片播放窗口的最近播放条目保

27、存并返回至主界面4.3 数据库模块本模块中所有函数都是为其他模块服务,其他模块所需的对文件的各种操作,均需调用该模块内的函数。该模块内函数较多,均为接口函数。1) 数据库模块结构图4-8 数据库结构图数据库层中的所有函数模块程序都是为播放器模块中的音频模块,视频模块,图片模块服务。上述3模块中运用到得操作,比如,添加,删除,查找.。本模块的主要功能就是为播放器中3大功能模块提供服务。2) 表4-8数据库模块类图类名class cdatabase函数名cstring getasstring(cstring&)void setasstring(cstring&,cstring&)void newi

28、tem(const cmusic&)void newitem(const cmovie&)void newitem(const cphoto&)void newitem(const cstring&, const cstring&)void newitem(const cstring&, const cstring&, const cstring&)void deleteallitem(const cstring&)void deleteitem(const cstring&, const cstring&)void deleteitem(void)bool searchitem(const

29、cstring&, const cstring&)void showallitem(clistctrl&, const cstring&)第5章 数据库设计5.1数据库引擎概述microsoft office access(前名 microsoft access)是由微软发布的关联式数据库管理系统。它结合了 microsoft jet database engine 和 图形用户界面两项特点,是 microsoft office的成员之一。access的优点:1) 存储方式简单,易于维护管理。access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb或.acc

30、db)的数据库文件中,便于用户的操作和管理。2) 面向对象。access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能都封装在各类对象中它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。3) 集成了各种向导和生成器工具,极大的提高了开发人员的效率。access基于windows操作系统下的集成开发环境,该环境集成了各种向导和

31、生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。4) access支持odbc(开发数据库互连,open data base connectivity),利用access强大的dde(动态数据交换)和ole(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、excel表格、word文档,还可以建立动态的数据库报表和窗体等。access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成html文件,轻松构建internet/intranet的应用。5) 支持广泛,易于扩展,弹性较大。能

32、够将通过链接表的方式来打开excel文件、格式化文本文件等,这样就可以利用数据库的高效率对其中的数据进行查询、处理。还可以通过以access作为前台客户端,以sql server作为后台数据库的方式(如adp)开发大型数据库应用系统。5.2数据库概要设计音频模块相关表:表5-1 allmusic(所有音乐信息):字段名类型长度键类型赋初始值说明title文本255音乐标题artist文本255艺术家album文本255专辑duration文本32持续时间size文本32文件大小type文本16文件类型genre文本32音乐风格year文本16年份comment文本255备注completena

33、me文本255pk完整路径名表5-2 musicplaylist(播放列表所含音乐):字段名类型长度键类型赋初始值说明playlistname文本255pk播放列表名,定义表中音乐所在列表completename文本255pk完整路径名表5-3musicplaylistname(播放列表表名):字段名类型长度键类型赋初始值说明playlistname文本255pk存储所有音乐播放列表的名称表5-4 musicrecentplaylist(最近播放项目):字段名类型长度键类型赋初始值说明completename文本255pk完整路径名,最近播放列表中的歌曲表5-5 musicrecentaddl

34、ist(最近追加项目):字段名类型长度键类型赋初始值说明completename文本255pk完整路径名,最近追加项目中的歌曲.视频模块相关表:表5-6 allmovie(所有视频):字段名类型长度键类型赋初始值说明title文本255视频标题duration文本32持续时间size文本32文件大小type文本16文件类型year文本16年份completename文本255pk完整路径名表5-7 movieplaylist(播放列表所含视频):字段名类型长度键类型赋初始值说明playlistname文本255pk播放列表名,定义表中视频所在列表completename文本255pk完整路径名

35、表5-8movieplaylistname(播放列表表名):字段名类型长度键类型赋初始值说明playlistname文本255pk存储所有音乐播放列表的名称表5-9 movierecentplaylist(最近播放项目):字段名类型长度键类型赋初始值说明completename文本255pk完整路径名,最近播放列表中的视频表5-10 movierecentaddlist(最近追加项目):字段名类型长度键类型赋初始值说明completename文本255pk完整路径名,最近追加项目中的视频图片模块相关表:表5-11 allphoto(所有图片):字段名类型长度键类型赋初始值说明title文本25

36、5图片标题width文本16图片宽度,和图片长度一起为图片像素length文本16图片长度,和图片宽度一起为图片像素size文本32文件大小type文本16文件类型year文本8年份cameramodel文本255相机类型completename文本255pk完整路径名表5-12 photoplaylist(播放列表中所含图片):字段名类型长度键类型赋初始值说明playlistname文本255pk播放列表名,定义表中图片所在列表completename文本255pk完整路径名表5-13 photoplaylistname(播放列表表名):字段名类型长度键类型赋初始值说明playlistnam

37、e文本255pk播放列表名表5-14 photorecentplaylist(最近播放项目):字段名类型长度键类型赋初始值说明completename文本255pk完整路径名,确定图片表5-15 photorecentaddlist(最近追加项目):字段名类型长度键类型赋初始值说明completename文本255pk完整路径名,确定图片第6章 系统详细设计6.1音频模块本模块主要是在播放器下的音频模块,实现音频文件的播放和播放控制操作,以及在播放音频文件时实现多个播放模式的变换,本模块与界面层及数据库之间都存在接口。图6-1 音频播放器页面bool cmusicplayer:play(cha

38、r*path)if(path!=null) m_media-put_url(path); m_control-play(); return true;elsereturn false;double cmusicplayer:getdurationdouble(char *path)m_media = static_cast(m_media-newmedia(path);return m_media.get_duration();void cmusicplayer:addmusic(clistctrl *ctr,htreeitem hitem) m_queue.removall();int nu

39、m=ctr-getselectedcount();position ps=ctr-getfirstselecteditemposition();cstring s;htreeitem hchild=g_pdlg-m_treeplaylist.getchilditem(hitem); while(num0) int m_nindex=ctr-getnextselecteditem(ps);s=ctr-getitemtext(m_nindex,4);/m_medialist.searchnode(m_nindex);m_queue.insertnode(m_nindex,gettitle(s.ge

40、tbuffer(0),hchild,s.getbuffer(0);hchild=g_pdlg-m_treeplaylist.getnextsiblingitem(hchild);-num;void cmusicplayer:addmusic(int index,char *path,htreeitem hitem)if(m_queue.getcur()=null)m_queue.setcur(m_queue.gettail();m_queue.insertnode(index,gettitle(path),hitem,path); m_queue.setcur(m_queue.gettail(

41、);else m_queue.insertnode(index,gettitle(path),hitem,path);bool cmusicplayer:play()if(m_path!=null)cstring path=m_path;g_plyricdlg-m_start=0;g_plyricdlg-m_end=0;showlyric(path,0);m_media-put_url(m_path); m_control-play(); return true;elsereturn false;bool cmusicplayer:next()m_path=m_queue.next();cst

42、ring path=m_path;g_plyricdlg-m_start=0;g_plyricdlg-m_end=0;showlyric(path,0);return play();double cmusicplayer:getdurationdouble()m_media = static_cast(m_media-newmedia(m_path);return m_media.get_duration();/*void cmusicplayer:setfirst()m_medialist.setcur(m_medialist.gethead();*/void cmusicplayer:ad

43、dmusic(int index, clistctrl *ctr)if(index=-1)m_queue.removall();int num=ctr-getitemcount();int n(0);cstring s;cstring name;htreeitem hitem;while(num0)s=ctr-getitemtext(n,4);/m_medialist.next();name=ctr-getitemtext(n,0);hitem=g_pdlg-m_treeplaylist.insertitem(name,2,2,g_pdlg-m_hselectitem,tvi_last);m_

44、queue.insertnode(n,gettitle(s.getbuffer(0),hitem,s.getbuffer(0);num-;n+;/m_path=m_queue.next();/play();能从主菜单和工具栏中选择文件类型下的音乐类型,并且主界面显示已经添加的音乐文件、音乐分类、最近播放的音乐。可以实现音乐的播放;快进,快退;切换歌曲;添加歌曲;音乐播放模式互换主要有:1) 单曲播放:当选中一个音频时播放该音频;当选中多个音频时播放选中的第一个音频;当未选中音频时播放当前选中的播放列表中的第一个音频。且该音频只播放一次,播放完毕后停止。2) 单曲循环:当选中一个音频时播放该音频

45、;当选中多个音频时播放选中的第一个音频;当未选中音频时播放当前选中的播放列表中的第一个音频。且不停循环,直到用户点击停止按钮。3) 顺序播放:当选中一个音频时,播放效果同单曲播放;当选中多个音频时,从选中的第一个音频开始播放,直到选中的最后一个音频;当没有选中音频时,从当前选中的播放列表中的第一个音频开始播放,直到列表中的最后一个音频。且当最后一个音频播放完毕后播放停止。4) 循环播放:当选中一个音频时,播放效果同单曲循环;当选中多个音频时,从选中的第一个音频开始播放,直到选中的最后一个音频;当没有选中音频时,从当前选中的播放列表中的第一个音频开始播放,直到列表中的最后一个音频。且当最后一个音

46、频播放完毕后从第一个音频开始重新播放。5) 随机播放:当选中一个音频时,播放效果同单曲循环;当选中多个音频时,会随机播放选中的文件。6.2图片模块本模块主要实现图像文件的浏览和简单的图像变换操作,以及在浏览多张图像文件时可进行动态浏览,并附加上用户可选择的过渡效果。本模块与界面层及数据层之间都存在接口。图6-2 图片播放器页面/按钮悬停提示crect rect(0,0,100,100);m_tooltip.create(this);m_tooltip.settiptextcolor(rgb(255,0,0);/设置弹出框字体颜色 m_tooltip.setdelaytime(0);/设置延迟时

47、间cstring str;m_tooltip.addtool(getdlgitem(idc_image_play),全屏自动播放,&rect,1);m_tooltip.addtool(getdlgitem(idc_image_brivery),缩略图,&rect,1);m_tooltip.addtool(getdlgitem(idc_image_previous),上一张,&rect,1);m_tooltip.addtool(getdlgitem(idc_image_next),下一张,&rect,1);m_tooltip.addtool(getdlgitem(idc_image_blowup

48、),图片放大,&rect,1);m_tooltip.addtool(getdlgitem(idc_image_reduce),图片缩小,&rect,1);m_tooltip.addtool(getdlgitem(idc_image_clockwise),顺时针旋转,&rect,1);m_tooltip.addtool(getdlgitem(idc_image_unclockwise),逆时针旋转,&rect,1);可以实现图片的自由添加,图片的播放与制作,能从主菜单和工具栏中选择文件类型下的图片类型,并且主界面显示已经添加的图片文件、图片分类、最近查看的图片。6.3视频模块图6-3视频播放器页

49、面视频播放器可以实现自由添加视频,删除视频,自由拖动进度条,自由切换视频。能从主菜单和工具栏中选择文件类型下的视频类型,并且主界面显示已经添加的视频文件、视频分类、最近播放的视频。/*初始化播放列表*/m_videoplayslist.insertcolumn( 0, 视频列表:, lvcfmt_left, 190 );m_videoplayslist.insertcolumn( 1, 大小:, lvcfmt_left, 100 );/插入列m_videoplayslist.insertcolumn( 2, 类型:, lvcfmt_left, 100 );/插入列m_videoplayslis

50、t.insertcolumn( 3, 日期:, lvcfmt_left, 100 );/插入列m_videoplayslist.insertcolumn( 4, 路径:, lvcfmt_left, 100 );/插入列m_videoplayslist.insertcolumn( 5, 播放时长:, lvcfmt_left, 100 );/插入列/*if(g_pdlg-m_bvloaddata=true)m_ncount=g_pdlg-m_filelist.getitemcount();/获取视频数量*/*获取文件长度*/*for(int i=0;im_filelist.getitemtext(

51、i,0);m_videoplayslist.setitemtext(i,1,g_pdlg-m_filelist.getitemtext(i,1);m_videoplayslist.setitemtext(i,2,g_pdlg-m_filelist.getitemtext(i,2);m_videoplayslist.setitemtext(i,3,g_pdlg-m_filelist.getitemtext(i,3);m_videoplayslist.setitemtext(i,4,g_pdlg-m_filelist.getitemtext(i,4);m_strpath=m_videoplayslist.getitemtext(i,4);m_videomedia = static_cast(m_videoplayer.newmedia(m_strpath);if(m_videomedia.getiteminfo(filetype)=asf)结论1 系统取得的成果 本系统主要以mfc为技术支持,实现了与视频,音乐,图片播放与一体的软件播放器,主要可以实现以下功能:1) 项目功能点1:

温馨提示

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

评论

0/150

提交评论