音乐播放器设计与实现毕业论文.docx
《音乐播放器设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《音乐播放器设计与实现毕业论文.docx(54页珍藏版)》请在冰点文库上搜索。
音乐播放器设计与实现毕业论文
音乐播放器设计与实现
摘要
本文对音乐播放器的设计与开发过程进行了分析与叙述。
依照系统开发的实际操作步骤,文章从需求分析、概要设计、详细设计和测试这四大章节对系统开发过程进行分别阐述。
需求分析中主要包括了软件设计前的需要实现的基本功能,界面要求;而概要设计则是对系统体系结构、各功能模块等具体的系统实现过程进行剖析展示,在详细设计章节中有详细实现方法和文字解释并配有表图说明。
文章还列举了关键的功能模块实现代码。
本文主要详细介绍了一个用Qt开发播放器的实现方法,在分析了目前国内许多播放器样式基础上,并经过反复摸索和学习研究后,借助编程语言C++和Qt开发环境最终实现了音乐播放器的开发,并在一系列测试后,达成了友好化界面、所需功能基本完善、操作简单的设计目标。
关键词Qt;音乐播放器;C++
Designandimplementationofamusicplayer
Abstract
Inthispaper,amusicplayerdesignanddevelopmentprocesswereanalyzedanddescribed.Inaccordancewiththeactualstepsofsystemdevelopment,thearticlefromtheneedsanalysis,outlinedesign,detaileddesignandtestingofthesefoursectionsofthesystemdevelopmentprocessaredescribed.Requirementsanalysisincludesthebasicfunctionsofthesoftwaredesignpriortotheneedtoachieve,andinterfacerequirements;whiletheoutlinedesignofthesystemisthespecificsystemarchitecture,thefunctionalmodulessuchastheimplementationprocesstoanalyzethedisplay,thereisadetailedsectioninthedetaileddesigntoachievemethodsandinterpretationofthetextandwithatablediagram.Thearticlealsoliststhekeyfeaturesmodulecode.
ThispaperintroducestheonewiththeQtdevelopmentplayerimplementations,analyzingthecurrentdomesticmanyplayersstylebasis,andaftertrialanderrorandlearningresearch,withtheprogramminglanguageC++andQtdevelopmentenvironmentandultimatelythemusicplayerdevelopment,andafteraseriesofteststoreachafriendlyinterface,basicfunctionsrequiredforperfect,simpledesigngoals.
Keywords:
Qt;musicplayer;C++
摘要
Abstract
4详细设计16
1绪论
1.1课题背景
随着计算机技术的发展应用软件在生活中应用越来越广泛。
特别是多媒体技术在我们实际生活中应用很多。
作为音乐播放器软件,网络上流行着很多种,人们也并不陌生。
以java编写,运行于windows操作系统的为多数。
它们大多数功能复杂,结构庞大,界面也很美观。
但以简洁的C++语言编写为少数。
在此次设计中,专门在Qt环境下用C++开发一个能够实现简但功能,而且界面清晰的音乐播放器。
从而更加是我们能够直观的看到实现音乐播放器功能所采用的这种方法,便于我们学习和应用。
Qt是一个跨平台C++图形用户界面应用程序开发框架。
它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。
Qt是面向对象的框架,使用特殊的代码生成扩展。
在现如今,它仍然非常流行。
1.2目的和意义
本项目的目的是开发一个可以播放主流的音乐播放器,本设计的实现主要功能是播放MP3,WAV、OGG等格式的音乐文件,并且能控制播放,暂停,停止,音量,选择上一曲,选择下一曲,进度条,列表文件。
还有歌曲文件的管理操作等多种播放控制,界面简明,操作简单。
1.3开发工具和技术
1.3.1开发工具
此次项目主要采用的是Qt开发环境进行开发设计。
Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。
它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。
Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(MetaObjectCompiler,moc))以及一些宏,易于扩展,允许组件编程。
2008年,奇趣科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。
2012年,Qt被Digia收购。
2014年4月,跨平台集成开发环境QtCreator3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。
1.3.2使用技术
此次项目主要采用的软件开发技术主要是C++语言。
C++是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。
应用较为广泛,是一种静态数据类型检查的,支持多重编程的通用程序设计语言。
它支持过程化程序设计,数据抽象,面向对象设计,制作图标等多种程序设计风格。
最新正式标准C++11于2011年8月12日公布。
1.4系统设计思想
对于音乐播放器,必须要满足使用方便、操作灵活等要求。
本系统在设计时应该满足以下几个目标:
(1)简单操作,界面美观、友好、方便、播放顺畅;
(2)系统最大限度地实现了易维护性和易操作性;
(3)系统运行稳定、安全可靠。
1.5本文的结构
本文具体内容包括:
需求分析、概要设计、详细设计与实现、软件的测试。
本文着重描述了音乐播放器组成与结构,阐述了软件的设计方案、实现方法以及所采用的开发工具和相关技术,另外,重点剖析了部分环节的开发过程。
本系统在一定的环境下对系统的重要模块进行了模拟测试,证实了系统的可用性、可靠性。
对于开发的每一个系统,都会受到时间和资源上的双重限制。
因此,在每一个项目开发之前,都必须进行可行性分析,这样可以减少项目的开发风险,避免人力、物力和财力的浪费。
下面就经济、技术、操作和法律四个方面来介绍。
1.6经济可行性
软件的经济可行性是指一个软件产品在开发出来后所能带来的经济上的效益与开发设计该软件所需要的投入相比,是否是相适合的,另外最重要的是此软件能否真正能给用户带来丰厚的经济利益,我开发的这个系统正是在不断观察的基础上,考虑到为了新闻发布的使用者和管理者提升他们的工作效率,通过节省工作时间从而节省人力资源,该系统实现了方便操作与管理而设计理念。
本系统的研发在经济可行性方面是完全没有问题的。
此软件的开发不需要花费大量的资金,也不需要投入大量的人力物力,对于实现一些基本的功能只需要一个人就可以完成,从而可以节省许多不必要的费用,同时也可提高个人的实际动手能力。
1.7技术可行性
根据该系统要实现的功能来考虑所需要的技术在有限的预算内是否可以达到,具体可以从软件和硬件的功能要求、硬件环境配置、管理员的操作能力和数量等方面去考虑和分析。
通过对该系统开发运行的可行性,在软件方面选择了比较好用并功能强大的Qt工具来进行软件的设计开发,Qt工作平台是一个十分优秀的用于开发C++,集成开发环境,利用它我们可以进行简单Qt程序的开发,以及提高开发效率。
Qt的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持。
它是功能丰富的集成开发环境,包括了完备的编码、调试、测试和发布功能。
而且在学习过程中我主要使用的也是这个工具,操作起来比较熟练。
在页面设计方面主要使用的是Qt方面的知识2.开放的开发过程,开放的源码5.JSP跨平台的可重用性:
Qt既可以在linux上运行,也可以在windows系统运行。
这些都是非常成熟的开发工具,它们在安全性、可用性、可靠性方面都非常值得信赖,因此在软件的使用方面是没有问题的。
在硬件方面,则应该尽可能选择空间不太大,硬件配置较高的设备,这样在软件的开发和运行过程中会更加的方便。
考虑到现在的家用电脑硬件配置都比较高,一般的软件运行起来都没有问题,我选择了在学校一直使用的HP笔记本电脑,因此系统在硬件方面也是没有问题的。
1.8操作可行性
本新音乐播放器操作简单易行,用户只需要打开播放器,插入歌曲,即可听取各种歌曲,此软件的管理人员对开发此应用项目的态度确定而且管理方面的条件都比较成熟。
经过以上分析,运行方面是可行的。
1.9法律可行性
本系统是自行开发的管理系统,是很有实际意义的系统,开发环境软件和使用的数据库都是开源代码,开发这个系统不同于开发普通的系统软件,不存在侵权等问题,即法律上是可行的。
综上所述,开发一个基于Qt的音乐播放器系统对于方便大众、听歌、歌曲收集方面都具有速度更快,操作简单,节省开支等有利之处,因此,建立一个基于Qt的新音乐播放器系统是必要可行的。
2需求分析
2.1软件需求
时至如今,随着电子IT行业的发展,音乐播放器软件在互联网上有很多,种类繁多,各种功能多样,样式也绚丽夺目。
相对于其他软件来说,实现此类软件的基本功能并不太繁琐,但在编写过程中所需的知识点很多,编写过程并不容易。
我课题选了Qt实现的音乐播放器的设计与实现,希望通过此次毕业设计巩固旧知识掌握新知识,整体提升自己代码开发的综合能力。
2.1.1编写目的
为明确软件需求、安排项目与进度、组织软件开发与测试,而写本文档。
在问题分析阶段分析人员的主要任务是:
对用户的需求进行鉴别、综合和建模,清除用户需求的模糊性、歧义性和不一致性,分析系统的数据要求,为原始问题及目标软件建立逻辑模型。
分析人员要将对原始问题的理解与软件开发经验结合起来,以便发现哪些要求是由于用户的片面性或短期行为所导致的不合理要求,哪些是用户尚未提出但具有真正价值的潜在需求。
2.1.2项目背景
本项目由自己选题确定,由本人独自开发。
开发软件名称:
音乐播放器;
项目提出者:
太原理工大学;
项目开发者:
樊凯。
2.1.3项目目的和目标
本项目的目的是开发一个可以播放主流的音乐播放器,本设计的实现主要功能是播放MP3,WAV、OGG等格式的音乐文件,并且能控制播放,暂停,停止,音量,选择上一曲,选择下一曲,进度条,列表文件。
还有歌曲文件的管理操作等多种播放控制,界面简明,操作简单。
2.2系统需求分析
2.2.1功能需求
根据项目,我们可以获得项目系统的基本需求,以下从不同角度来描述系统的需求。
系统的功能需求,我们分成三部分来概括,即播放器的基本控制需求,播放列表管理需求和播放器友好性需求。
以下分别描述:
(1)播放器的基本控制需求
播放:
软件理应实现所选歌曲的正常播放(所选歌曲的文件格式应该为mp3,wav,ogg)。
进度条:
显示播放歌曲进度。
时间栏:
显示播放的时间。
停止:
停止当前播放的歌曲,而显示播放的图标。
下一首:
播放歌曲列表的下一首。
上一首:
播放上一首歌曲。
头像:
显示作者和版本号。
(2)播放列表管理
点击目录:
在播放器上点击添加时会弹出对话框,在本地文件里找到一首或同时添加几首,点击确定会显示到播放列表里。
歌曲:
弹出一个添加歌曲信息的会话框,填入歌曲信息(歌名不能重复)可以进行添加,添加成功则更新了歌曲列表。
删除歌曲:
选中歌曲后,单击右键选择删除歌曲或者点击下面的删除则删掉当前播放或选中的歌曲。
随机:
点击左下角的随机,会按照播放列表里的歌曲顺序,随机播放下一首歌曲。
注:
添加歌曲时,类型编号和名称都不能为空。
添加歌曲时,歌曲名不能为空,歌曲地址不能为空(否则播放时会是无效路径)。
(3)播放器友好性要求:
视觉外观:
外观要优美,选大气清新淡雅图片做背景。
系统:
使用播放器时能显示播放器的状态,是播放还是暂停。
2.2.2界面需求
播放器界面要求布局合理,颜色舒适,控制按钮友好;为了较少开发工程量,可以参考现在流行的播放器的皮肤作为播放器的界面或从网络下载相应的图标。
界面设计现在已经成为评价软件质量的一条重要指标,一个好的用户界面可以带给用户很好的体验,增加用户使用软件的信心和兴趣,提高效率。
在使用软件是弹出用户界面,用户界面是指软件系统与用户交互的接口,它一般都包括输出、输入、人与电脑对话的界面格式等。
(1)输出设计
输出是由计算机对输入的原始信息进行加工处理,形成高质量的有效信息,并使之具有一定的格式,提供管理者使用,这是输出设计的主要职责和目标。
系统设计的过程正好和实施过程相反,并不是从输入设计到输出设计,而是从输出设计到输入设计,这是因为输出表格直接与使用者相联系,设计的出发点应当是保证输出表格方便地为使用者服务,正确及时反映和组成用于各部门的有用信息。
输出设计的原则是考虑既要全面反映不同管理层的各项需要,又要言简意赅,不要将用户需要和不需要的都提供给用户。
(2)输入设计
输入数据的收集和录入是比较费事的,需要大量的人力和一定设备,并且容易出错。
如果输入系统的数据有错误,则处理后的输出将扩大这些错误,因此输入数据的正确性对于整个系统质量的好坏是具有决定性意义的。
输入设计的原则有如下几点:
1)输入量应保持在能满足处理要求的最低限度。
设计中可采用设置字段初值,下拉式数据窗口等方式尽量减少用户键盘输入量。
输入量越少,错误率就越少,数据准备时间也减少。
2)输入的准备及输入过程应尽量容易进行,从而减少错误的发生。
3)应尽量早对输入数据进行检查(尽量接近原数据发生点),以便使错误及时得到更正。
4)输入数据尽早地用其处理所需的形式被记录,以避免数据由一种介质转移到另一种介质时需要转录而可能发生的错误。
2.2.3性能需求
(1)当要求歌曲播放时,软件响应时间最长不超过2秒。
(2)当要求歌曲暂停时,软件响应时间最长不超过1秒。
(3)播放歌曲,采用本地播放,播放流畅。
2.2.4可靠性要求
为了适应将来的发展,系统应该具有良好的可扩展性与可维护性。
系统设计应尽可能模块化、组件化,使应用系统可以灵活配置,适应不同的情况。
系统的可扩展性应该包括能接纳已有的系统与在今后系统软硬件扩展时,能够有效地保护已有的投资。
特别是在应用需求变化时(应用与系统的需求往往提不完全或者经常会变化),有一个较好的应用平台,能够容易地加以调整。
系统易于扩充升级,既能够满足当前业务的需求,又能够为今后的扩充留有空间。
系统能持续运行,不影响其他程序的使用,不多占用内存,不会造成死机等问题。
2.2.5运行环境需求
操作系统:
Windows7系列。
Windows7是由微软公司(Microsoft)开发的操作系统,核心版本号为WindowsNT6.1。
Windows7可供家庭及商业工作环境、笔记本电脑、平板电脑、多媒体中心等使用。
2009年7月14日Windows7RTM(Build7600.16385)正式上线,2009年10月22日微软于美国正式发布Windows7,2009年10月23日微软于中国正式发布Windows7。
Windows7主流支持服务过期时间为2015年1月13日,扩展支持服务过期时间为2020年1月14日。
Windows7延续了WindowsVista的Aero1.0风格,并且更胜一筹。
支持环境:
QtCreator4.7以上。
QtCreator是跨平台的QtIDE,QtCreator是Qt被Nokia收购后推出的一款新的轻量级集成开发环境(IDE)。
此IDE能够跨平台运行,支持的系统包括Linux(32位及64位)、MacOSX以及Windows。
根据官方描述,QtCreator的设计目标是使开发人员能够利用Qt这个应用程序框架更加快速及轻易的完成开发任务。
3概要设计
3.1设计计划
概要设计的主要任务是把需求分析得到的系统扩展用例图转换为软件结构和数据结构。
设计软件结构的具体任务是:
将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。
数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。
显然,概要设计建立的是目标系统的逻辑模型,与计算机无关。
3.1.1编写目的
为了使我对音乐播放器的整体设计有个系统的规划,提供详细设计的基础依据,进而进行软件开发。
3.1.2背景
(1)开发基于win7平台下用Qt开发音乐播放器;
(2)提出者:
太原理工大学;
(3)开发者:
樊凯;
(4)用户:
演示者;
(5)平台:
win7。
3.1.3定义
MediaObject(管理媒体源)AudioOutput(连接物理设备)SeekSlider(实现进度条)QList(实现播放列表)。
3.2总体设计
3.2.1需求规定
本项目的目的是开发一个可以播放的主流的音乐播放器,本设计的实现主要功能是播放MP3,WAV等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,进度条,列表文件,歌曲文件的管理操作等多种播放控制,界面简明,操作简单。
3.2.2运行环境
操作系统:
Windows7系列支持环境:
QTCreator4.7以上。
3.2.3基本设计概念和处理流程
如图3-1。
图3-1软件用例图
用例图定义:
由参与者(Actor)、用例(UseCase)以及它们之间的关系构成的用于描述系统功能的静态视图称为用例图。
用例图(UserCase)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。
用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。
用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。
将每个系统中的用户分出工作状态的属性和工作内容,方便建模,防止功能重复和多余的类。
用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。
3.2.4主要功能
有以下,如图3-2。
.
图3-2主要功能图
所编的程序只要在本地就可以执行,添加本地歌曲到播放列表即可。
3.2.5人工处理过程
需要上网找一些流行的图标,了解当今主流的界面样式风格,尽力开发出适应潮流的项目。
3.2.6尚未问决的问题
不会修改背景色,和文本框,按钮色,有时软件不稳定,运行后出现布局混乱。
对布局有时候那难以控制。
3.3面向对象的建模
UnifiedModelingLanguage(UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。
它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。
类图:
类图(Classdiagram)由许多(静态)说明性的模型元素(例如类、包和它们之间的关系,这些元素和它们的内容互相连接)组成。
类图可以组织在(并且属于)包中,仅显示特定包中的相关内容。
类图(Classdiagram)是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。
类图(Classdiagram)最基本的元素是类或者接口。
静态,如图3-3。
图3-3静态类图
原理:
主要用到的模块中的MediaObject(管理媒体源)AudioOutput(媒体连接设备)SeekSlider(实现进度条);Phonon的工作原理是使用MediaObject来管理MediaObject即源文件,通过Path链接到AudioOutput,最后有AudioOutput将数据送到相关物理设备。
整体架构:
Phonon原理图,如图3-4。
Path
图3-4Phonon原理图
快速原型法:
原型是指模拟某种产品的原始模型,在其他产业中经常使用。
软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性。
快速原型模型又称原型模型,它是增量模型的另一种形式;它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。
例如,客户需要一个ATM机软件,可以先设计一个仅包含刷卡、密码检测、数据输入和账单打印的原型软件提供给客户,此时还不包括网络处理与数据库存取以及数据应急、故障处理等服务。
快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。
通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。
使用快速原型构建软件基本设计界面,图3-5。
图3-5软件基本设计界面
在界面设计中要用到布局管理器:
在用Qt进行用户界面应用程序的编程时,建议通过编写相关代码来生成和维护Qt控件,而不要用Qt Designer。
这时对相应的Qt控件进行布局管理显得尤为重要。
常见的三种布局方式:
网格布局(QGridLayout)、 水平布局(QHBoxLayout) 垂直布局(QVBoxLayout)。
方法:
1)以单个的Qt控件为单位,先进行子块布局,分别对各个子块进行布局。
2)以步骤1)中的子块为单位,进行全局布局。
例如:
我们要完成如下样式的Qt界面,整个Qt界面有ABCDEFXYZ共计9个Qt控件,如图3-6。
图3-6布局
方法1:
1)用“网格布局”对ABCDEF(子块1)进行布局。
QGridLayout *leftLay=new QGridLayout; 用“垂直布局”对XYZ(子块2)进行布局QVBoxLayout *rightLay=new QVBoxLayout;
2)用“水平布局”对子块1(ABCDEF)、子块2(XYZ)