毕业设计(论文)-MP3播放器的设计与实现.doc_第1页
毕业设计(论文)-MP3播放器的设计与实现.doc_第2页
毕业设计(论文)-MP3播放器的设计与实现.doc_第3页
毕业设计(论文)-MP3播放器的设计与实现.doc_第4页
毕业设计(论文)-MP3播放器的设计与实现.doc_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

毕 业 设 计 论 文题目:MP3播放器的设计与实现系 别:计算机科学与工程系专 业:信息管理与信息系统姓 名:学 号:指导教师: 河南城建学院2012年 05月 20日31河南城建学院毕业设计(论文)摘要摘 要随着Linux系统主要有服务器向普通用户扩展,越来越多的人开始接触并使用Linux系统,可以说Linux是开源、免费的代称,具有极强的平台可伸缩性,可以多任务用户,有丰富的图形用户界面和强大的网络功能等等一系列优势。在Linux下的Qt是一款跨平台的图形开发软件,它提供给应用程序开发者建立图形用户界面所需的所有功能,该软件利用已有的媒体文件的解码播放控件和Qt开发而成。该播放器实现了播放MP3,并且支持其他的一些常见的媒体文件,如:MIDI、DAT、ASF、MPG和WAV等。论文首先介绍了MP3与MP3播放器、研究内容,然后,论文介绍了系统的设计目标,划分并设计了系统功能模块,包括:播放控制窗口模块、播放列表管理模块、菜单管理模块等,设计了媒体文件和歌词文件的处理流程。最后,论文介绍了系统的运行环境及运行效果,并对各个部分进行了图示说明。关键字: Linux;Qt GUI框架;音乐播放器 河南城建学院本科毕业设计(论文) AbstractAbstractWith the Linux system to the general user, the server expansion, more and more people came into contact with and use the Linux system, you can say that Linux is open source, free of charge in lieu of that, with a strong platform for scalability, you can multi-task users, there are a number of advantages of the rich graphical user interface and powerful network functions. Qt is a cross-platform graphics development software under Linux, it provides all the functionality required to create a graphical user interface to application developers, the software to use the decoding of media files playback controls and Qt was developed. The players realized play MP3, and supports a number of other common media files, such as: MIDI, DAT, ASF, MPG, and WAV. The paper first introduces the MP3 and MP3 player, content and arrangement of the chapters. Firstly, this thesis introduces MP3 and MP3 player, Secondly, the design goal of the system is analyzed, and the function modules of the system are divided and designs, including playing control, playlist management, lyric display, menu management and help, also the process flows of media and lyric files are designed. Thirdly, the development platforms are introduced, and the detailed design and realization of various functions of the system are described. At last, the running results of the system are explained by the copied running screens.Keyword: Linux;Qt GUI;frameworks music player河南城建学院本科毕业设计(论文) 目录 摘 要IAbstractII1. 前言11.1 Winamp21.2 Foobar 200021.3 千千静听31.4 课题简介32 .系统目标52.1 系统的功能模块设计52.2 MP3 文件的播放处理流程62.3歌词文件的处理流程63.系统详细设计与实现93.1 开发工具介绍93.2 C+ 介绍104. 界面窗口模块详细设计与实现144.1 控制界面窗口144.2 控制组件154.2.1 播放/暂停按钮154.2.2停止按钮的设计164.2.3.上一首按钮的设计164.2.4.下一首按钮的设计164.2.5.打开按钮的设计164.2.6.列表按钮的设计164.2.7.歌词按钮的设计174.2.8.静音按钮174.2.9.音量控制条174.2.10.进度控制条174.3播放列表界面174.4 MP3 文件播放控制模块详细设计与实现184.4.1 播放194.4.2 暂停214.4.3 停止播放214.4.4 上一首224.4.5 下一首234.4.6 打开文件并播放234.4.7 向列表中添加单首 MP3 文件244.4.8删除列表中的一首 MP3 文件244.4.9播放器控制窗口上的菜单功能255.系统运行环境及效果265.1 系统运行环境265.2 运行效果265.3 播放器的播放列表窗口界面28结束语29致 谢30参考文献31附 录A32A.1系统主函数代码32A.2控制界面函数代码32A.3列表窗口函数代码44A.4歌词实现代码46河南城建学院本科毕业设计(论文) 前言 1 前言办公自动化管理系统(OA),是伴随着Internet技术在各个领域的广泛应用,和各行各业企业信息化建设步伐的加快应运而生。当代社会已经进入信息时代,信息技术革命使社会的各个领域都发生了翻天覆地的变化,每个企业都必须紧跟时代的步伐,加强企业竞争力和提升现代化企业的管理能力,以适应整个社会的发展变化。近年来,随着计算机技术的发展和互联网时代的到来,我们已经进入了信息时代也有人称为数字化时代,计算机网络已经进入大部分家庭,人们的生产生活方式已经发生很大的变化,特别是通信技术的迅猛发展,使得人与人之间的信息交流突破了地域,国界的限制,商业国际化,信息全球化速度加快。因此,在这数字化的时代里,企业的运营管理也受到了极大的挑战。Internet技术持续迅猛的发展,也给各行各业的管理提出了新的模式。MP3的全称是Moving Picture Experts Group Audio Layer III,是一种连续图像(电 影)格式中的声音部分,即一种音频压缩技术,简称为MPEG Audio Layer 3, 由于这个格式使用广泛,就进一步简称为 MP3。MP3是利用 MPEG Audio Layer 3的技术,将 音乐以1:10甚至1:12的压缩率,压缩成容量较小的文件,同时保持较好的音频质量。尽管目前多媒体技术还处于不断发展的阶段,竞争也异常激烈,目前的多媒体格式极不统一,不同格式的多媒体文件需要用不同的播放软件来播放,但是MP3作为使用最为广泛的音频格式,得到了几乎所有的软件播放器和大部分硬件播放器的支持。下面,就来看看最常见的三款有名的音乐播放软件。为了更好的为用户服务,企业都会提供用户管理系统,来对客户资料进行管理,使管理突破时空限制,提高管理效率与水平,使用户在时候任何地点都可以通过网络进行与企业进行信息交流,满足用户需求,实现企业朝着网络化,信息化,现代化方向发展。本课题就试图使用java技术来实现一个最基本的网上办公自动化系统。本系统通过设计和建设网络拓扑架构、网络安全系统、数据库基础结构、信息共享与管理、信息的发布与管理,从而方便企业和客户之间的信息交流和信息共享。1.1 Winamp Winamp由Nullsoft公司开发,创始人Justin Frankel,伴随着MP3这种音乐格式的出现而出现,伴随着MP3的成长而成长,是一个非常著名的高保真的音乐播放软件,支持MP3、MP2、MOD、S3M、MTM、ULT、XM、IT、669、CD-Audio和Line-In等格式。Winamp最大的优点就是音质好,而且接口界面很酷,同时支持插件,扩展更多的功能,并且其资源占用较少,在MP3的发展史上拥有无可替代的重要地位,甚至一度成为MP3的代名词,是用户播放MP3 的不二选择。Winamp很有进取精神,在保持原有领地的基础上,还不断地学习、创造开发新功能,而且很受欢迎。例如:EQ均衡器、播放列表、插件、更换皮肤、AVS 和媒体库等等,尤其是2.81版本的DFX 更是使其音质百尺竿头更进一步,受到了广泛欢迎。但是,Winamp从1.0版本发展到如今的版本,虽然更新频繁,更新时间也很快,但总体来看并没有质的飞跃。就市场角度来看,这对Winamp是不利的, 而且对新用户其操作不便,这样就使Winamp的新用户增长速度大大降低,甚至连老用户这块阵地也很难守住。特别是从2002年发布的Winamp3.0来看,资源占用率高,重点转为界面的华丽而不是音质的提高,使很多用户继续使用Winamp2.81,于是 Nullsoft公司又推出了2.9版本, 由此可见Winamp处于很被动的局势。在危机紧迫关头,Winamp不得不重整计划,于2003年秋季发布Winamp5,将其所有希望压在Winamp5 的身上。目前,Winamp播放MP3时,可以使用迷你歌词进行歌词的实时显示,但是由于迷你歌词不免费而限制了其使用范围。1.2 Foobar 2000Foobar 2000是由以前专门为Winamp写插件的Peter Pawlowski编写的一个革命性的高级音频播放器。Foobar 2000之所以出现,在于它不满Winamp 2.x的插件体系架构和更倾向于图形、皮肤的发展方向的Winamp3。Foobar 2000值得关注的,在于它良好的体系架构。除了重要的音频管道以外,播放器所有功能部件均是模块化的,并且支持插件扩展,例如其可视化的核心由插件提供。Foobar 2000是一个Windows平台下的高级音频播放器,尤其在播放MP3时可以使用很多高级功能,可以对其播放音效进行调节,适合于对MP3的播放有苛刻要求的用户。它包含了一些播放增益支持、低内存占用等基本特色,以及内置支持一些流行的音频格式。Foobar 2000的定位是高级音频播放器,虽然有很多人迷上了其丰富的音效调节功能,但是其高难度的专业参数设置注定了其用户数量不会有太大的发展。因为用户数量的增长缓慢,大大限制Foobar 2000这一款优秀的MP3播放器的发展。目前,Foobar 2000播放器可以使用速配歌词2005独立版for Winamp & Foobar 2000,在播放MP3时实现歌词的实时显示,作为非内置的歌词显示插件,其兼容性和稳定性需要进一步加强。 1.3 千千静听 千千静听(Thousand tunes player, TTPlayer)是一款完全免费的音乐播放软件,集播放、音效、转换、歌词等众多功能于一身。其小巧精致、操作简捷、功能强大的特点,深得用户喜爱,被网友评为中国十大优秀软件之一,并且成为目前国内最受欢迎的音乐播放软件,拥有最大的用户群,渐渐取代了Winamp在个人PC上MP3播放器的王者地位。千千静听同样支持多种流行的音乐格式,并可通过插件进行扩展。支持均衡器、播放列表、格式转换等,资源占用率低。千千静听倍受用户喜爱和推崇,最大的原因是其强大而完善的同步歌词显示功能。在播放歌曲的同时,可以自动连接到千千静听庞大的歌词库服务器,自动下载相匹配的歌词文件,并且以卡拉OK式效果同步滚动显示,并支持鼠标拖动定位播放;另有独具特色的歌词编辑功能,可以自己制作或修改同步歌词,还可以直接将自己精心制作的歌词上传到服务器实现与他人共享。千千静听播放MP3使用的是同Foobar 2000一样的mpg123解码器,其音质是有保证的,但是音效调节的效果要远远弱于Foobar 2000,只能凭借其简便的操作和设置占据上风。千千静听的皮肤除了部分自己设计外,其他大多是模仿Winamp或者WMP (Windows Media Player)等,需要设计更多自己的特色皮肤。千千静听因为自带功能强大的歌词秀,并且有庞大的歌词库服务器的支持,使其如果说当年Winamp是MP3的代名 在歌词的显示上遥遥领先于Winamp和Foobar 2000。1.4 课题简介本文主要研究的内容是设计并实现一款支持歌词的音乐播放器系统。用户通过对播放器的主窗口界面进行控制,以达到控制系统的各个功能模块及对媒体文件进行管理和歌词实时显示的目的。本软件是用Linux下的QT开发而成的,QT是一个跨平台的C+ GUI应用构架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,更为引人注目的是目前Linux上最为流行的KDE桌面环境就是建立在QT库的基础之上。QT支持下列平台:MS/WINDOWS-95、98、NT和2000;UNIX/X11-Linux、Sun Solaris、HP-UX、Digital Unix、IBM AIX、SGI IRIX;EMBEDDED-支持framebuffer的Linux平台。伴随着KDE的快速发展和普及,QT很可能成为Linux窗口平台上进行软件开发时的GUI首选河南城建学院本科毕业设计(论文) 系统目标2 系统目标对于MP3音乐播放器,必须给用户提供最简单的操作和最完善的功能。至少应该能够对MP3及其他常见的媒体类型进行播放、暂停、停止、拖放操作等。除了最基本的操作以外,优秀的MP3播放器还提供了许多附加的功能来突出显示该媒体播放器的特色,例如本播放器的歌词实时显示。为了实现一个播放器所应该具有的功能,并给播放器的使用者提供最简单的操作,本系统设计的目标就是要让设计的播放器能够对MP3和常见的多媒体文件进行播放、暂停播放、停止播放、拖动播放等;在提供操作的简易性的同时还要保证操作界面的友好性。在这样的情况下,对播放器的设计目标要求有如下功能的实现:界面窗口的控制功能:播放器主窗口控制、播放列表窗口的控制和歌词显示窗口的控制;媒体文件的播放控制功能:开始播放、暂停播放、停止播放和拖动播放等; 媒体文件的管理功能:添加歌曲、删除歌曲、清空列表、保存列表;菜单控制播放功能:播放界面上的菜单、列表窗口上的菜单。功能特色:1.实现桌面歌词显示。2.实现音乐拖入播放。3.实现系统托盘菜单。4.实现窗口相互吸附。5.实现主窗口携带子窗口移动。2.1 系统的功能模块设计一个软件系统设计的成败,除了在功能上要尽可能地完善以外,在界面设计上也有很大的决定性作用。如果你的软件界面很糟糕,不能让使用该软件的用户满意,那么你开发的产品将被“冻结”起来,得不到用户的响应。所以,软件产品的界面设计应该具有友好性这一特点。除此之外,还应该有简洁性。如果你的产品只注意了友好美观的界面,而使得你的界面很复杂,将会给用户带来极大的不便,从而会适得其反。比如,一个最简单的操作用户要点击一个按钮,而你的界面上到处都是按钮图片之类的,这就会让用户花上很长的时间去寻找要点击的按钮,这样一来,当然就不能使用户满意了。基于此,本系统使用Qt来设计界面,并且共有2个界面窗口,分别是:播放器控制窗口、播放列表窗口、歌词显示窗口。为了更好地实现系统的各项功能及这些功能的完整性,现在把系统共分为以下2大模块进行设计: (1) 系统的播放控制窗口模块(2) MP3文件的播放列表管理模块 (3) MP3歌词的实时显示模块2.2 MP3 文件的播放处理流程对MP3文件的传送主要是用在播放列表处理的过程中,当播放器的用户想利用本播放器来播放一个MP3文件时,首先要做的就是将该MP3文件所在磁盘上的地址传到播放列表中。当要播放该文件时,就从播放列表中提取该文件地址并将地址传送到播放控制窗,剩下的工作都交给 phonon控件进行MP3文件的播放。对MP3文件的详细传送处理过程如图2-1所示。图2-1 MP3 文件的播放处理流程2.3歌词文件的处理流程歌词的实时显示作为本播放器的重要功能,LRC歌词文件的处理流程也就显得至关重要,因为LRC歌词可能处于不同位置,所以其地址和数据处理流程要比MP3文件 的处理流程要复杂得多,其具体处理过程如图2-2所示图应该有图的说明,也别加这么深的背景色,不然打印出来看不清楚图2-2 歌词文件的处理流程首先,也是将MP3文件所在磁盘上的地址传到播放列表中,当要播放该文件时,就从播放列表中提取该文件地址并将地址传送到播放控制窗口,并将MP3文件扩展名改为LRC,以获得一个与MP3文件相同路径的LRC歌词文件的地址,将MP3文件名和LRC文件名传递到MP3信息获取模块;在MP3信息获取模块中先读取MP3文件的TAG信息,然后将MP3文件末尾的内容传递给歌词处理模块,检查该MP3文件是否内嵌了歌词,如果内嵌歌词存在则分离出时间信息和歌词文本并返回;如果不存在内嵌歌词,则检查同路径下LRC 歌词文件是否存在,如果存在则将其传递给歌词处理模块进行歌词处理,分离出时间信息和歌词文本并返回;如果不存在则尝试自动关联歌词文件夹中是否存在该歌词。如果存在,则将其传递给歌词处理模块进行时间信息和歌词文本的分离,然后返回播放控制模块;如果此时返回的歌词存在,则将其传递给歌词显示窗口进行显示,并使用时间信息进行控制。河南城建学院本科毕业设计(论文) 系统详细设计与实现3.系统详细设计与实现3.1 开发工具介绍Qt从4.4版本开始提供的一套多媒体框架,提供多媒体回放的功能。目前在Qt 4.6中实现多媒体播放图形界面主要依赖于phonon框架,其实qt中还有一个Multimedia模块,帮助文档中对它的描述是:实现底层的多媒体播放功能,在一般情况下上层的接口phonon模块更适合实现这些功能。phonon最初是一个源于KDE的项目,为使用音频和视频的应用程序开发提供的一个框架。应用程序不用去管多媒体播放是通过什么实现的(如gstreamer、xine),只需调用相应的接口就行,但这中间需要一个中转,被称为backend。Qt也是通过phonon来实现夸平台的多媒体播放。多媒体文件的播放主要过程包括:文件读取、分流、解码、输出。如图3-1所示图3-1 多媒体文件的播放主要过程这些在不同的系统中实现方式不同,如windows下的DirectX、Linux下的 gstreamer或xine及Mac下的QuickTime。而Qt中的phonon作为夸平台的多媒体解决方案,就因该为用户屏蔽掉这些差异。而实际上它做得还不够好,因为用户还需要自己来安装相应的后端插件来完成播放任务。如图3-2图3-2 Phonon库的调用使用过程应用Phonon框架实质上分4个部分,你的程序,Phonon库,Phonon后端插件(phonon_backend),真正的后端。Phonon其实什么都不干,他只是提供了一套API接口,这套接口可以给你的程序调用,同时也是给编写后端插件提供一个规范。程序完全不知道最后谁来放我的Mp3,谁来解码我的视频,播放的又是哪个设备。同样,Phonon库也不知道,他只管搜索符合自己规范的插件。并告诉这些插件,现在程序发出的指令是什么,从插件返回给程序现在的媒体状态和信息。而后端才是实际进行读入媒体、解码并且播放的部分,他们和后端插件是一一对应的。后端可以是任何形式,只要你写出了相应的后端插件。所以,使用Phonon必需要先做2件事:1、编译Phonon库:通常情况下,Qt默认没有编译,需要configure后加好参数,然后单独进入phonon的文件夹进行编译就可以了2、编译Phonon后端插件:Qt为3大平台分别提供了一个可用的后端插件,放在srcpluginsphonon目录下。进入目录编译即可,Qt会自动选择你当前系统的后端插件的。(出现phonon backend plugin could not be loaded就是这步没有做).如果是MinGW用户,Windows下Qt只提供了DirectShow这个后端插件,而这个后端插件因为调用了DX的SDK,所以只能由VC编译。当然其实有更好的选择,比如这个phonon-vlc-mplayer插件,通过他,可以将mplayer作为后端,彻底抛弃臃肿的VS以及读ID3v2都会出错的DirectShow,Phonon是KDE 4的多媒体API 。Phonon提供一个稳定的API允许KDE 4独立于任何一个声音系统服务器如xine。Phonon让各种后端提供界面给开发者所谓的引擎;每个引擎运作在一个具体的后端。每个后端都可让Phonon控制基本功能,如播放、暂停和搜寻。Phonon也支持更高层次的功能,如让音轨转化之间变微弱。使用Solid,Phonon将给予用户更多配件的控制能力如耳机、扬声器、麦克风。一个例子是,因为你可能只有一个VoIP会话使用您的耳机,但所有其他的声音通过扬声器出来。支援 Unix-like 系统下的后端xine、VLC、MPlayer。支援 Windows 下的后端 DirectShow、VLC和MPlayer.支援 Mac OS X下的后端QuickTime。如上所述,如果想要运行使用Qt中的phonon写的程序,需要满足一下条件:Qt基本库、Qt phonon库、phonon_backend(后端插件)和多媒体播放后台。3.2 C+ 介绍C+即“C plus plus”,“CPP”。它是一种使用非常广泛的计算机编程语言。C+是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。C+语言发展大概可以分为三个阶段: 第一阶段从80年代到1995年。这一阶段C+语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额; 第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C+中占据了越来越多的比重性。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C+受到了一定的冲击; 第三阶段从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C+出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C+已经成为当今主流程序设计语言中最复杂的一员。根据Effective C+第三版第一条款的描述,C+由以下四个“子语言”组成: 1、C子语言。C+支持C语言的几乎全部功能,主要是c89的部分,在语法上与C语言仅有极微妙的差别(如括号表达式的左右值性)。 2、面向对象的C+语言。C+语言原本不具备面向对象的设计功能,然而随着面向对象编程的概念的提出以及如Java等语言的发展成熟,C+语言也开发出了支持面向对象功能的版本。 3、泛型编程语言。C+强大(但容易失控的)模板功能使它能在编译期完成许多工作,从而大大提高运行期效率。 4、STL(C+标准模板库,Standard Template Library)。随着STL的不断发展,它已经逐渐成为C+程序设计中不可或缺的部分,其效率可能比一般的native代码低些,但是其安全性与规范性使它大受欢迎。 C+特点:(1)C+设计成静态类型、和C同样高效且可移植的多用途程序设计语言。(2)C+设计成直接的和广泛的支援多种程序设计风格(程序化程序设计、资料抽象化、面向对象程序设计、泛型程序设计)。(3)C+设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误。(4)C+设计成尽可能与C兼容,籍此提供一个从C到C+的平滑过渡。(5)C+避免平台限定或没有普遍用途的特性。(6)C+不使用会带来额外开销的特性。(7)C+设计成无需复杂的程序设计环境。 出于保证语言的简洁和运行高效等方面的考虑,C+的很多特性都是以库(如STL)或其他的形式提供的,而没有直接添加到语言本身里。C+编译技巧使用new和delete进行动态内存分配和释放运算符new和delete提供了存储的动态分配和释放功能。它的作用相当于C语言的函数malloc()和free(),但是性能更为优越。使用new较之使用malloc()有以下的几个优点:(1)new自动计算要分配类型的大小,不使用sizeof运算符,比较省事,可以避免错误。(2)自动地返回正确的指针类型,不用进行强制指针类型转换。(3)可以用new对分配的对象进行初始化。 使用例子: (1)int* p; p=new int10; /分配一个含有10个整数的整型数组 delete p; /释放这个指向数组的指针所占内存 (2)int* p; p=new int (100);/动态分配一个整数并初始化使用缺省参数在C+中函数可以使用缺省参数,例如: void PutHzxy(char *str,int x=-1, int y=-1) if(x=-1) x=wherex(); if(y=-1) x=wherex(); moveto(x,y); PutHx(str); 可以有三种方式调用函数PutHzxy(),例如: PutHzxy(C+语言);/使用缺省参数,在当前位置输出 PutHzxy(C+语言,10,10);/没有使用缺省参数 PutHzxy(C+语言,10);/对y使用缺省参数,指定x的位置 通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C+的代码中都大量地使用了缺省参数。 需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。否则当你省略其中一个参数的时候,编译器无法知道你是自定义了这个参数还是利用了缺省参数而定义了非缺省的参数。 例如: void PutHzxy(char*str,int x=-1,int y=-1)/正确 void PutHzxy(int x=-1,int y=-1,char*str)/错误C+优点C+在一定程度上可以和C语言很好的结合,甚至目前大多数C语言程序是在C+的集成开发环境中完成的。C+相对众多的面向对象的语言,具有相当高的性能。 C+引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。很多优秀的程序框架包括MFC、QT、wxWidgets就是使用的C+。河南城建学院本科毕业设计(论文) 界面窗口模块详细设计与实现4 界面窗口模块详细设计与实现一款软件的界面设计的成败直接关系到该产品的成败。本MP3播放器系统的界面设计,利用Qt提供的强大的控件设计而成。系统的界面窗口包括有2个主要的界面,分别是:播放器的控制界面窗口和媒体文件播放列表窗口,背景都为蓝绿色调,下面分别作出详细介绍。4.1 控制界面窗口播放器的控制界面是播放器系统与播放器的使用者直接交互的媒介。按照控制界面上的组件的功能来分,可以将这些组件分成两部分:信息显示和控制组件,如图4-1所示图4-1控制界面窗口信息显示组件信息显示是系统与使用者进行交流的通道,它可以及时地将各种有用的信息提供给用户,以便用户对系统进行控制。本播放器系统的所有信息显示在操作控件四周,很方便看到1.播放状态显示的作用,是及时准确地显示当前播放器所处的状态。其中,状态有“播放”、“暂停”和“停止”三种,随播放器状态的改变而改变。2.音量显示 这部分与音量控制滑动杆控件和菜单项中的“声音”相关联,当音量滑动杆的滑块位置改变以后,音量大小会随着变化。4.2 控制组件信息显示是播放器系统提供给使用者各种有用的信息,而控制组件则刚好相反,它可以看作是使用者提供给播放器系统的各种有用的信息,用来指示系统是否工作及如何工作。4.2.1 播放/暂停按钮设计这个按钮对一个播放器来说是最为重要的。如果一个播放器不能够播放/暂停的话,就不能称之为播放器了。对本播放器系统来说,这个按钮集成了两个重要的功能:“开始播放”和“暂停播放”,这样将两个功能集成到一个位置上的好处就是减少了界面上的按钮的个数,这使得整个界面更加简洁。这个按钮的作用是:如果当前播放器的状态为正在播放,点击它之后就会暂停播放;如果当前播放器的状态为暂停播放,点击它之后就会继续播放。如果播放器的状态没有播放,也不是处于暂停状态,点击之后,系统就会从媒体播放列表中加载一个媒体文件并开始播放。因此,基于上述功能,为实现播放和暂停功能,使之重叠放置,按照播放状态的改变在同一时间只显示一个按钮,这样就模拟实现了播放/暂停功能按钮,如果在播放状态时想点击播放按钮播放其他MP3可以通过菜单中实现。表 4-1 播放器控件的组成部分组成控件功能播放/暂停按钮播放当前音乐文件或者暂停播放停止按钮停止播放当前音乐文件上一首按钮播放列表中当前MP3文件的上一首MP3文件下一首按纽播放列表中当前MP3文件的下一首MP3文件打开按钮选择一首MP3文件列表按钮显示隐藏播放列表窗口歌词按钮显示隐藏歌词显示窗口静音按钮打开/关闭播放器的输出声音音量控制条对播放器的音量大小进行调节进度控制条对当前播放的MP3文件的播放进度进行调节4.2.2停止按钮的设计 停止功能按钮的设计,是让本播放器系统的使用者可以以手动的方式来停止当前 媒体文件的播放。如果播放器当前没有文件正在进行播放时,该按钮将置为无效状态,此时该按钮不能点击。 4.2.3.上一首按钮的设计如果没有播放列表的话就不存在有多个媒体文件,也就不存在有上一首可以选择了。所以,一个播放器的设计有这个功能按钮的话,就表示它一定有一个用来保存媒体文件的播放列表。在本系统中,上一首按钮设计在播放/暂停功能按钮的前面。这样设计的目的,是使得整个功能控制按钮的顺序与MP3文件在列表中的顺序相似。 4.2.4.下一首按钮的设计同样,它的设计也是与播放列表的存在有关,如果没有播放列表的话就不存在有多个媒体文件,也就不存在有下一首可以选择了。在本系统中,下一首按钮设计在播放/暂停功能按钮的后面。这样设计的目的,是使得整个功能控制按钮的顺序与文件在列表中的顺序相似。 4.2.5.打开按钮的设计打开功能按钮的设计,是方便用户选择一个媒体文件,并立即进行播放。4.2.6.列表按钮的设计 它主要是对播放列表窗口进行显示/隐藏控制,当用户点击此按钮后,如果当前列表窗口的状态为显示状态的话,用户的操作将会隐藏列表窗口。相反,如果当前列表窗口的状态为隐藏状态,用户的操作将会显示列表窗口。4.2.7.歌词按钮的设计LRC是MP3歌词文件的格式,此按钮可以控制歌词显示窗口的显示与隐藏。当用户点击此按钮时,将检查歌词显示窗口的状态。如果当前状态为显示,则将其隐藏;反之,如果当前状态为隐藏,则将其显示。4.2.8.静音按钮该按钮可以控制播放器输出声音的开启和关闭。当用户点击此按钮时,系统将检查播放器的声音状态。如果当前声音状态为开启,则将其管理,即静音;如果当前声音状态为关闭,则将其开启。因为与音量控制有关,所以在播放器中将其置于音量控制条的左方。4.2.9.音量控制条 音量控制条的设计与音量大小和播放器的输出音量关联,它的改变将直接影响播放器输出音量的大小,其主要功能是用来控制系统播放媒体文件时发出的音量大小。4.2.10.进度控制条 进度控制条的设计,是用来方便用户进行控制播放媒体文件进度的,它的移动将直接改变媒体文件的当前播放进度,同时歌词显示实时窗口的歌词也将按照进度进行调整。当控制条滑到最左边时表示MP3文件的初始位置,当控制条滑到最右边时表示当前位置为MP3文件的最后位置。4.3播放列表界面本播放器系统的播放列表窗口界面的设计主要是用来方便使用者配置管理播放 器的播放列表,以提供给播放器更完整的功能。效果如图4-2所示图4-2 播放列表界面4.4 MP3 文件播放控制模块详细设计与实现MP3文件的播放控制模块是本播放器系统的很重要的组成部分。在本播放器系统 中,播放控制主要集中在对播放器的控制界面上的操作。首先说明的是,媒体播放器的播放控制的类型,如表4-2所示表 4-2 播放控制模块组成控件功能播放按钮从媒体文件打开播放或从暂停状态继续播放暂停暂停当前MP3文件的播放停止停止播放当前MP3音乐文件上一首播放列表中当前MP3文件的上一首MP3文件下一首播放列表中当前MP3文件的下一首MP3文件打开选择一首MP3文件在本播放器中,总共有三种状态,即播放状态、暂停状态和停止状态,通过表中所列的各种播放控制类型可以实现这三种状态之间的转换,其具体转换如图4-4所示。图4-4 播放的三种状态下面将根据上图的各种转换关系,详细介绍各种播放控制类型的设计与实现4.4.1 播放播放功能是媒体播放器所有控制功能中最重要的一个功能,没有了它,播放器不能播放,也就不能称之为播放器了。在本播放器系统中,当点击播放会有三种状态转换:第一种是从播放状态仍然转换到播放状态;第二种是从停止状态转换到播放状态;第三种是从暂停状态转换到播放状态。下面具体介绍播放功能是怎样设计的,其具体流程如图4-5所示。 当播放器接收到播放命令后,会依次执行下面的过程:(1)检查播放器的当前状态是否是暂停状态。如果是暂停状态,那么继续播放,如果不是暂停状态,则执行第2步;(2)检查播放列表中是否有媒体文件,如果没有则调用添加歌曲过程进行添加,然后再次执行本过程进行播放;如果播放列表中有文件则执行第3步;(3)检查播放列表索引,判断是否选中了播放列表的一首MP3来进行播放,如果没有选择,则选择播放列表中的第一首后执行第4步,如果已经选择了要播放的MP3 则直接执行第4步(4) 判断要播放的MP3在播放列表中的位置,如果是第一首则将上一首按钮置为无效,否则置为有效;如果是最后一首,则将下一首按钮置为无效,否则置为有效。开始列表是否有文件是否选中歌曲播放的第一首上一首有效播放的最后一首下一首无效下一首有效单曲播放单曲循环上下首置无效计时器开始计时添加歌曲选中第一首上一首无效播放调用歌词显示函数设置个按钮状结束图4-5 播放功能流程图4.4.2 暂停当用户播放一个媒体文件到某一个特定的点时,由于某些原因需要暂停当前媒体文件的播放,这就要求设计的媒体播放器具有暂停播放的功能。既然是暂停播放,那么它前面的状态就必然是播放状态,即暂停状态只能由播放状态转换而来。而这个状态转换的条件,就是在系统播放时用户点击暂停按钮,暂停功能的流程如图4-6所示。图4-6 暂停功能的流程4.4.3 停止播放停止当前MP3文件的播放有三种方式,第一种是当播放器播放到当前文件的最 后,系统会自动停止播放;第二种是用户可以点击停止播放按钮来停止当前媒体文件的播放。进入停止状态的初始状态也有两种:第一种是播放状态;第二种是暂停状态,当播放器转换为停止状态后,暂停功能和停止功能都变为无效功能,不能使用,直到转换到播放状态。停止功能的设计流程如图4-7所示。 当播放器接收到停止命令后,会执行以下过程: (1)设置各按钮状态,播放为有效,暂停和停止置为无效;(2)检查停止命令是用户手动停止,还是播放器播放完一首MP3后自动转换到停止状态。如果是手动停止则使播放控件停止播放,计时器停止计时,并将当前播放进度置0;如果是自然停止这执行第3步;(3)检查播放模式是否是单曲播放模式,如果是则结束停止过程,否则执行第4步; (4) 如果播放模式是循环播放且播放结束的是播放列表中的最后一首,这将播放列表的索引置0,否则直接播放下一首。图4-7 停止功能流程4.4.4 上一首上一首是针对播放列表所定义的操作。它是指用户对播放器系统发送的命令(播 放上一首),然后由播放器系统做出播放上一首的反应。因为在本播放器系统中,如果当前播放的MP3文件是播放列表中的第一首时,上一首功能设置为无效状态,所以在系统发送播放上一首命令时,不需要检查当前播放的文件是否是播放列表中的第一文件,而可以执行播放上一首的操作。 上一首的具体流程如图4-8所示。图4-8 上一首功能流程4.4.5 下一首同样,播放下一首也是针对播放列表所定义的操作。它是指用户对播放器系统发 送播放下一首的命令,然后由播放器系统做出播放下一首的反应。同样,在本播放器系统中,如果当前播放的文件是播放列表中最后一个文件,那么播放下一首功能会设置为无效状态,所以系统在响应播放下一首命令时,无需检查当前播放文件是否是播放列表的最后一个文件。它的具体操作过程是:当用户发送了播放下一首的命令后,系统就会停止当前正在播放的文件,然后去播放当前播放文件的后面一个文件。下一首功能的流程可参照图4-8。4.4.6 打开文件并播放打开文件并播放是用户通过点击打开按钮向系统发送的命令。当系统接收到该命令时,先会弹出一个打开文件对话框,然后由用户选择所要打开的MP3文件,把这个文件添加到播放列表,然后使用播放功能播放该文件。具体的操作流程如图4-9所示。图4-9 打开功能操作流程4.4.7 向列表中添加单首 MP3 文件向播放列表中添加媒体文件,都是在系统的播放列表窗口界面上进行操作的,以添加单首MP3文件。具体的添加过程是:当系统获取了一个添加媒体文件的命令时,会弹出一个文件对话框,等待用户选择媒体文件,这时,用户可以选择一个MP3文件。当用户点击文件对话框上的打开按钮以后,用户所选择的MP3文件就会被添加到播放列表中供用户查看和控制。4.4.8删除列表中的一首 MP3 文件对播放列表有添加功能当然也必然存在删除操作。在对播放列表中的MP3文件进行删除操作时,前提是播放列表中必须有一首MP3文件被选中,否则将不会有任何事件发生。其具体操作是:当用户想要删除一个MP3文件时,首先用鼠标选择该文件,然后右击音乐曲目点击删除就可以了,剩下的工作由系统完成。其中,系统所做的工作是:记录当前用户所删除的文件在列表中的索引,然后根据这个索引值删除掉播放列表中的该索引项,然后系统会自动将该项后面的项向前移动一位。4.4.9播放器控制窗口上的菜单功能播放器控制窗口上的菜单与播放器控制窗口上的各种控件的功能相对应,并增加了一些功能,特别是对播放器系统的配置这一块的各种功能。1.打开 该菜单项与打开并播放按钮的区别,只在于点击此选项后选择的MP3媒体文件只添加到播放列表中,并不自动进行播放。 2.退出 此功能是在做完结束前的工作后,关闭播放器系统。3.歌词 点击此菜单项可以LRC歌词文件与正在播放的MP3文件进行关联。4.增大音量 该功能可以多次使用,每次点击都可以增大播放器系统的输出音量,本播放器设置每次增大的音量为最大音量的10%。5.减小音量该功能与增大音量对应,同样可以多次点击,每次点击都可以减小播放器系统的 输出音量,本播放器设置的是每次减小的音量为最大音量的10%。河南城建学院本科毕业设计(论文) 系统运行环境及效果5.系统运行环境及效果5.1 系统运行环境本播放器运行的软、硬件环境如下: 1) 软件环境 本系统在 Linux Ubuntu 11.10 下调试通过2) 硬件环境 处理器:Intel Pentium 4 1.4GHz 内存:512 MB DDR 266 硬盘:40GB5.2 运行效果本播放器系统一共有3个界面窗口,分别是播放器的主控制窗口、播放列表窗口 和歌词显

温馨提示

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

评论

0/150

提交评论