音乐播放器设计与实现_第1页
音乐播放器设计与实现_第2页
音乐播放器设计与实现_第3页
音乐播放器设计与实现_第4页
音乐播放器设计与实现_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)任务书第1页毕业设计(论文)题目音乐播放器设计与实现毕业设计(论文)要求及原始数据(资料)1查看常见的音乐播放器的基本构成;2通过网络查询深入了解音乐播放器及的相关技术以及最近流行的音乐播放器的设计方式;3熟练掌握音乐播放器的设计原理;要理解播放器实现流程是怎样的,了解它使用的框架和方法函数;4学会应用QT编程,开发;要通过此次机会,能够熟练地运用QT开发环境;5深入分析音乐播放器的关键技术与语言;我主要用到了C,通过编程,能够很好地温习C的语法内容,并且能够熟练的运用;6训练检索文献资料和利用文献资料的能力;第2页毕业设计(论文)主要内容1综述音乐播放器在日常生活中的功能和应用;2了解设计音乐播放器的相关技术;这里我关键技术是用到了PHONON框架。PHONON的工作机制是使用MEDIAOBJECT来管理MEDIASOURCE即源文件,通过PATH连接到AUDIOOUTPUT,最后是由AUDIOOUTPUT将数据发送到相关物理设备;3熟练掌握音乐播放器的编写;及相关代码的实现,特别要注意C的语法。学生应交出的设计文件(论文)1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。第3页主要参考文献(资料)1相洁软件开发环境与工具太原太原理工大学,201232552庞丽萍,郑然操作系统原理与LINUX系统实验北京清华大学出版社,2011861053严蔚敏数据结构北京清华大学出版社,2007541644赵毅LINUX窗口程序设计QT4精彩实例分析清华大学出版社,200610355(加)布兰切特,(英)萨默菲尔德CGUIQT4编程第二版北京清华大学出版社,20081021326霍顿C语言入门经典北京清华大学出版社,20081051557RANDALEBRYANT深入理解计算机系统期刊中国科技信息,2013(16)761048王珊LINUX内核的设计与实现北京机械工业出版社,201134559谭浩强C程序设计第2版北京清华大学出版社,20128410210郝玲,李晓LINUX的入门到精通北京清华大学出版社,2009335411JESMINBLANCHEMOC,GUI,QT4编程北京电子工业出版社,2006389812WILLIAMEPERRY软件测试的有效方法北京电子工业出版社,200710310813RONPATTON软件测试北京工业出版社M20055378专业班级软件1026班学生樊凯要求设计(论文)工作起止日期2014年3月17日2014年6月27日指导教师签字日期2014年3月17日教研室主任审查签字日期系主任批准签字日期音乐播放器设计与实现摘要本文对音乐播放器的设计与开发过程进行了分析与叙述。依照系统开发的实际操作步骤,文章从需求分析、概要设计、详细设计和测试这四大章节对系统开发过程进行分别阐述。需求分析中主要包括了软件设计前的需要实现的基本功能,界面要求;而概要设计则是对系统体系结构、各功能模块等具体的系统实现过程进行剖析展示,在详细设计章节中有详细实现方法和文字解释并配有表图说明。文章还列举了关键的功能模块实现代码。本文主要详细介绍了一个用QT开发播放器的实现方法,在分析了目前国内许多播放器样式基础上,并经过反复摸索和学习研究后,借助编程语言C和QT开发环境最终实现了音乐播放器的开发,并在一系列测试后,达成了友好化界面、所需功能基本完善、操作简单的设计目标。关键词QT;音乐播放器;CDESIGNANDIMPLEMENTATIONOFAMUSICPLAYERABSTRACTINTHISPAPER,AMUSICPLAYERDESIGNANDDEVELOPMENTPROCESSWEREANALYZEDANDDESCRIBEDINACCORDANCEWITHTHEACTUALSTEPSOFSYSTEMDEVELOPMENT,THEARTICLEFROMTHENEEDSANALYSIS,OUTLINEDESIGN,DETAILEDDESIGNANDTESTINGOFTHESEFOURSECTIONSOFTHESYSTEMDEVELOPMENTPROCESSAREDESCRIBEDREQUIREMENTSANALYSISINCLUDESTHEBASICFUNCTIONSOFTHESOFTWAREDESIGNPRIORTOTHENEEDTOACHIEVE,ANDINTERFACEREQUIREMENTSWHILETHEOUTLINEDESIGNOFTHESYSTEMISTHESPECIFICSYSTEMARCHITECTURE,THEFUNCTIONALMODULESSUCHASTHEIMPLEMENTATIONPROCESSTOANALYZETHEDISPLAY,THEREISADETAILEDSECTIONINTHEDETAILEDDESIGNTOACHIEVEMETHODSANDINTERPRETATIONOFTHETEXTANDWITHATABLEDIAGRAMTHEARTICLEALSOLISTSTHEKEYFEATURESMODULECODETHISPAPERINTRODUCESTHEONEWITHTHEQTDEVELOPMENTPLAYERIMPLEMENTATIONS,ANALYZINGTHECURRENTDOMESTICMANYPLAYERSSTYLEBASIS,ANDAFTERTRIALANDERRORANDLEARNINGRESEARCH,WITHTHEPROGRAMMINGLANGUAGECANDQTDEVELOPMENTENVIRONMENTANDULTIMATELYTHEMUSICPLAYERDEVELOPMENT,ANDAFTERASERIESOFTESTSTOREACHAFRIENDLYINTERFACE,BASICFUNCTIONSREQUIREDFORPERFECT,SIMPLEDESIGNGOALSKEYWORDSQTMUSICPLAYERC目录摘要IABSTRACTII1绪论111课题背景112目的和意义113开发工具和技术1131开发工具1132使用技术114系统设计思想215本文的结构216经济可行性217技术可行性218操作可行性319法律可行性32需求分析421软件需求4211编写目的4212项目背景4213项目目的和目标422系统需求分析4222界面需求5223性能需求5224可靠性要求5225运行环境需求53概要设计731设计计划7311编写目的7312背景7313定义732总体设计7321需求规定7322运行环境7321基本设计概念和处理流程7324主要功能9325人工处理过程9326尚未问决的问题933面向对象的建模9331出错信息14332补救措施144详细设计1641具体模块设计16411编写目的16412背景16413定义1642程序系统的结构17421程序描述17422功能17423性能18424模块的实现18425注释设计21426测试计划215系统测试与性能分析2751软件测试27结论32致谢34参考文献351绪论11课题背景随着计算机技术的发展应用软件在生活中应用越来越广泛。特别是多媒体技术在我们实际生活中应用很多。作为音乐播放器软件,网络上流行着很多种,人们也并不陌生。以JAVA编写,运行于WINDOWS操作系统的为多数。它们大多数功能复杂,结构庞大,界面也很美观。但以简洁的C语言编写为少数。在此次设计中,专门在QT环境下用C开发一个能够实现简但功能,而且界面清晰的音乐播放器。从而更加是我们能够直观的看到实现音乐播放器功能所采用的这种方法,便于我们学习和应用。QT是一个跨平台C图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。QT是面向对象的框架,使用特殊的代码生成扩展。在现如今,它仍然非常流行。12目的和意义本项目的目的是开发一个可以播放主流的音乐播放器,本设计的实现主要功能是播放MP3,WAV、OGG等格式的音乐文件,并且能控制播放,暂停,停止,音量,选择上一曲,选择下一曲,进度条,列表文件。还有歌曲文件的管理操作等多种播放控制,界面简明,操作简单。13开发工具和技术131开发工具此次项目主要采用的是QT开发环境进行开发设计。QT是一个1991年由奇趣科技开发的跨平台C图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。QT是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器METAOBJECTCOMPILER,MOC)以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,QT被DIGIA收购。2014年4月,跨平台集成开发环境QTCREATOR310正式发布,实现了对于IOS的完全支持,新增WINRT、BEAUTIFIER等插件,废弃了无PYTHON接口的GDB调试支持,集成了基于CLANG的C/C代码模块,并对ANDROID支持做出了调整,至此实现了全面支持IOS、ANDROID、WP。132使用技术此次项目主要采用的软件开发技术主要是C语言。C是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。应用较为广泛,是一种静态数据类型检查的,支持多重编程的通用程序设计语言。它支持过程化程序设计,数据抽象,面向对象设计,制作图标等多种程序设计风格。最新正式标准C11于2011年8月12日公布。14系统设计思想对于音乐播放器,必须要满足使用方便、操作灵活等要求。本系统在设计时应该满足以下几个目标(1)简单操作,界面美观、友好、方便、播放顺畅;(2)系统最大限度地实现了易维护性和易操作性;(3)系统运行稳定、安全可靠。15本文的结构本文具体内容包括需求分析、概要设计、详细设计与实现、软件的测试。本文着重描述了音乐播放器组成与结构,阐述了软件的设计方案、实现方法以及所采用的开发工具和相关技术,另外,重点剖析了部分环节的开发过程。本系统在一定的环境下对系统的重要模块进行了模拟测试,证实了系统的可用性、可靠性。对于开发的每一个系统,都会受到时间和资源上的双重限制。因此,在每一个项目开发之前,都必须进行可行性分析,这样可以减少项目的开发风险,避免人力、物力和财力的浪费。下面就经济、技术、操作和法律四个方面来介绍。16经济可行性软件的经济可行性是指一个软件产品在开发出来后所能带来的经济上的效益与开发设计该软件所需要的投入相比,是否是相适合的,另外最重要的是此软件能否真正能给用户带来丰厚的经济利益,我开发的这个系统正是在不断观察的基础上,考虑到为了新闻发布的使用者和管理者提升他们的工作效率,通过节省工作时间从而节省人力资源,该系统实现了方便操作与管理而设计理念。本系统的研发在经济可行性方面是完全没有问题的。此软件的开发不需要花费大量的资金,也不需要投入大量的人力物力,对于实现一些基本的功能只需要一个人就可以完成,从而可以节省许多不必要的费用,同时也可提高个人的实际动手能力。17技术可行性根据该系统要实现的功能来考虑所需要的技术在有限的预算内是否可以达到,具体可以从软件和硬件的功能要求、硬件环境配置、管理员的操作能力和数量等方面去考虑和分析。通过对该系统开发运行的可行性,在软件方面选择了比较好用并功能强大的QT工具来进行软件的设计开发,QT工作平台是一个十分优秀的用于开发C,集成开发环境,利用它我们可以进行简单QT程序的开发,以及提高开发效率。QT的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持。它是功能丰富的集成开发环境,包括了完备的编码、调试、测试和发布功能。而且在学习过程中我主要使用的也是这个工具,操作起来比较熟练。在页面设计方面主要使用的是QT方面的知识2开放的开发过程,开放的源码5JSP跨平台的可重用性QT既可以在LINUX上运行,也可以在WINDOWS系统运行。这些都是非常成熟的开发工具,它们在安全性、可用性、可靠性方面都非常值得信赖,因此在软件的使用方面是没有问题的。在硬件方面,则应该尽可能选择空间不太大,硬件配置较高的设备,这样在软件的开发和运行过程中会更加的方便。考虑到现在的家用电脑硬件配置都比较高,一般的软件运行起来都没有问题,我选择了在学校一直使用的笔记本电脑,因此系统在硬件方面也是没有问题的。18操作可行性本新音乐播放器操作简单易行,用户只需要打开播放器,插入歌曲,即可听取各种歌曲,此软件的管理人员对开发此应用项目的态度确定而且管理方面的条件都比较成熟。经过以上分析,运行方面是可行的。19法律可行性本系统是自行开发的管理系统,是很有实际意义的系统,开发环境软件和使用的数据库都是开源代码,开发这个系统不同于开发普通的系统软件,不存在侵权等问题,即法律上是可行的。综上所述,开发一个基于QT的音乐播放器系统对于方便大众、听歌、歌曲收集方面都具有速度更快,操作简单,节省开支等有利之处,因此,建立一个基于QT的新音乐播放器系统是必要可行的。2需求分析21软件需求时至如今,随着电子IT行业的发展,音乐播放器软件在互联网上有很多,种类繁多,各种功能多样,样式也绚丽夺目。相对于其他软件来说,实现此类软件的基本功能并不太繁琐,但在编写过程中所需的知识点很多,编写过程并不容易。我课题选了QT实现的音乐播放器的设计与实现,希望通过此次毕业设计巩固旧知识掌握新知识,整体提升自己代码开发的综合能力。211编写目的为明确软件需求、安排项目与进度、组织软件开发与测试,而写本文档。在问题分析阶段分析人员的主要任务是对用户的需求进行鉴别、综合和建模,清除用户需求的模糊性、歧义性和不一致性,分析系统的数据要求,为原始问题及目标软件建立逻辑模型。分析人员要将对原始问题的理解与软件开发经验结合起来,以便发现哪些要求是由于用户的片面性或短期行为所导致的不合理要求,哪些是用户尚未提出但具有真正价值的潜在需求。212项目背景本项目由自己选题确定,由本人独自开发。开发软件名称音乐播放器;项目提出者太原理工大学;项目开发者樊凯。213项目目的和目标本项目的目的是开发一个可以播放主流的音乐播放器,本设计的实现主要功能是播放MP3,WAV、OGG等格式的音乐文件,并且能控制播放,暂停,停止,音量,选择上一曲,选择下一曲,进度条,列表文件。还有歌曲文件的管理操作等多种播放控制,界面简明,操作简单。22系统需求分析221功能需求根据项目,我们可以获得项目系统的基本需求,以下从不同角度来描述系统的需求。系统的功能需求,我们分成三部分来概括,即播放器的基本控制需求,播放列表管理需求和播放器友好性需求。以下分别描述(1)播放器的基本控制需求播放软件理应实现所选歌曲的正常播放(所选歌曲的文件格式应该为MP3,WAV,OGG)。进度条显示播放歌曲进度。时间栏显示播放的时间。停止停止当前播放的歌曲,而显示播放的图标。下一首播放歌曲列表的下一首。上一首播放上一首歌曲。头像显示作者和版本号。(2)播放列表管理点击目录在播放器上点击添加时会弹出对话框,在本地文件里找到一首或同时添加几首,点击确定会显示到播放列表里。歌曲弹出一个添加歌曲信息的会话框,填入歌曲信息(歌名不能重复)可以进行添加,添加成功则更新了歌曲列表。删除歌曲选中歌曲后,单击右键选择删除歌曲或者点击下面的删除则删掉当前播放或选中的歌曲。随机点击左下角的随机,会按照播放列表里的歌曲顺序,随机播放下一首歌曲。注添加歌曲时,类型编号和名称都不能为空。添加歌曲时,歌曲名不能为空,歌曲地址不能为空(否则播放时会是无效路径)。(3)播放器友好性要求视觉外观外观要优美,选大气清新淡雅图片做背景。系统使用播放器时能显示播放器的状态,是播放还是暂停。222界面需求播放器界面要求布局合理,颜色舒适,控制按钮友好;为了较少开发工程量,可以参考现在流行的播放器的皮肤作为播放器的界面或从网络下载相应的图标。界面设计现在已经成为评价软件质量的一条重要指标,一个好的用户界面可以带给用户很好的体验,增加用户使用软件的信心和兴趣,提高效率。在使用软件是弹出用户界面,用户界面是指软件系统与用户交互的接口,它一般都包括输出、输入、人与电脑对话的界面格式等。1输出设计输出是由计算机对输入的原始信息进行加工处理,形成高质量的有效信息,并使之具有一定的格式,提供管理者使用,这是输出设计的主要职责和目标。系统设计的过程正好和实施过程相反,并不是从输入设计到输出设计,而是从输出设计到输入设计,这是因为输出表格直接与使用者相联系,设计的出发点应当是保证输出表格方便地为使用者服务,正确及时反映和组成用于各部门的有用信息。输出设计的原则是考虑既要全面反映不同管理层的各项需要,又要言简意赅,不要将用户需要和不需要的都提供给用户。2输入设计输入数据的收集和录入是比较费事的,需要大量的人力和一定设备,并且容易出错。如果输入系统的数据有错误,则处理后的输出将扩大这些错误,因此输入数据的正确性对于整个系统质量的好坏是具有决定性意义的。输入设计的原则有如下几点1)输入量应保持在能满足处理要求的最低限度。设计中可采用设置字段初值,下拉式数据窗口等方式尽量减少用户键盘输入量。输入量越少,错误率就越少,数据准备时间也减少。2)输入的准备及输入过程应尽量容易进行,从而减少错误的发生。3)应尽量早对输入数据进行检查(尽量接近原数据发生点),以便使错误及时得到更正。4)输入数据尽早地用其处理所需的形式被记录,以避免数据由一种介质转移到另一种介质时需要转录而可能发生的错误。223性能需求(1)当要求歌曲播放时,软件响应时间最长不超过2秒。(2)当要求歌曲暂停时,软件响应时间最长不超过1秒。(3)播放歌曲,采用本地播放,播放流畅。224可靠性要求为了适应将来的发展,系统应该具有良好的可扩展性与可维护性。系统设计应尽可能模块化、组件化,使应用系统可以灵活配置,适应不同的情况。系统的可扩展性应该包括能接纳已有的系统与在今后系统软硬件扩展时,能够有效地保护已有的投资。特别是在应用需求变化时应用与系统的需求往往提不完全或者经常会变化,有一个较好的应用平台,能够容易地加以调整。系统易于扩充升级,既能够满足当前业务的需求,又能够为今后的扩充留有空间。系统能持续运行,不影响其他程序的使用,不多占用内存,不会造成死机等问题。225运行环境需求操作系统WINDOWS7系列。WINDOWS7是由微软公司(MICROSOFT)开发的操作系统,核心版本号为WINDOWSNT61。WINDOWS7可供家庭及商业工作环境、笔记本电脑、平板电脑、多媒体中心等使用。2009年7月14日WINDOWS7RTM(BUILD760016385)正式上线,2009年10月22日微软于美国正式发布WINDOWS7,2009年10月23日微软于中国正式发布WINDOWS7。WINDOWS7主流支持服务过期时间为2015年1月13日,扩展支持服务过期时间为2020年1月14日。WINDOWS7延续了WINDOWSVISTA的AERO10风格,并且更胜一筹。支持环境QTCREATOR47以上。QTCREATOR是跨平台的QTIDE,QTCREATOR是QT被NOKIA收购后推出的一款新的轻量级集成开发环境(IDE)。此IDE能够跨平台运行,支持的系统包括LINUX(32位及64位)、MACOSX以及WINDOWS。根据官方描述,QTCREATOR的设计目标是使开发人员能够利用QT这个应用程序框架更加快速及轻易的完成开发任务。3概要设计31设计计划概要设计的主要任务是把需求分析得到的系统扩展用例图转换为软件结构和数据结构。设计软件结构的具体任务是将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。显然,概要设计建立的是目标系统的逻辑模型,与计算机无关。311编写目的为了使我对音乐播放器的整体设计有个系统的规划,提供详细设计的基础依据,进而进行软件开发。312背景1开发基于WIN7平台下用QT开发音乐播放器;2提出者太原理工大学;3开发者樊凯;4用户演示者;5平台WIN7。313定义MEDIAOBJECT(管理媒体源)AUDIOOUTPUT(连接物理设备)SEEKSLIDER(实现进度条)QLIST(实现播放列表)。32总体设计321需求规定本项目的目的是开发一个可以播放的主流的音乐播放器,本设计的实现主要功能是播放MP3,WAV等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,进度条,列表文件,歌曲文件的管理操作等多种播放控制,界面简明,操作简单。322运行环境操作系统WINDOWS7系列支持环境QTCREATOR47以上。323基本设计概念和处理流程如图31。图31软件用例图用例图定义由参与者(ACTOR)、用例(USECASE)以及它们之间的关系构成的用于描述系统功能的静态视图称为用例图。用例图(USERCASE)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。将每个系统中的用户分出工作状态的属性和工作内容,方便建模,防止功能重复和多余的类。用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。324主要功能有以下,如图32。功能基本操作其他操作上一首播放暂停停止下一首打开本地文件作者标题添加随机目录音量、进度调节时间显示删除图32主要功能图所编的程序只要在本地就可以执行,添加本地歌曲到播放列表即可。325人工处理过程需要上网找一些流行的图标,了解当今主流的界面样式风格,尽力开发出适应潮流的项目。326尚未问决的问题不会修改背景色,和文本框,按钮色,有时软件不稳定,运行后出现布局混乱。对布局有时候那难以控制。33面向对象的建模UNIFIEDMODELINGLANGUAGEUML又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。面向对象的分析与设计OOA2)用“水平布局”对子块1(ABCDEF)、子块2(XYZ)进行全局布局。QHBOXLAYOUTMAINLAYNEWQHBOXLAYOUTMAINLAYADDLAYOUTLEFTLAYMAINLAYADDLAYOUTRIGHTLAY方法21)用“水平布局”对AB(子块1)进行布局用“水平布局”对CD(子块2)进行布局。2)用“垂直布局”对子块1(AB)、子块2(CD)、E、F进行布局,形成子块3(ABCDEF)。3)用“垂直布局”对XYZ(子块4)进行布局。4)用“水平布局”对子块3(ABCDEF)、子块4(XYZ)进行全部布局。显示版本号BUTTON添加歌曲随机暂停删除上一首播放下一首目录信号和槽机制是QT的核心机制,要精通QT编程就必须对信号和槽有所了解。信号和槽是一种高级接口,应用于对象之间的通信,他是QT的核心特性,也是QT差别于其他工具包的重要地方。信号和槽是QT自行定义的一种通信机制,他独立于标准的C/C语言,因此要正确的处理信号和槽,必须借助一个称为MOC(METAOBJECTCOMPILER)的QT工具,该工具是个C预处理程式,他为高层次的事件处理自动生成所需要的附加代码。在我们所熟知的非常多GUI工具包中,窗口小部件WIDGET都有一个回调函数用于响应他们能触发的每个动作,这个回调函数通常是个指向某个函数的指针。不过,在QT中信号和槽取代了这些凌乱的函数指针,使得我们编写这些通信程式更为简洁明了。信号和槽能携带任意数量和任意类型的参数,他们是类型完全安全的,不会像回调函数那样产生COREDUMPS。所有从QOBJECT或其子类例如QWIDGET派生的类都能够包含信号和槽。当对象改动其状态时,信号就由该对象发射EMIT出去,这就是对象所要做的全部事情,他不知道另一端是谁在接收这个信号。这就是真正的信息封装,他确保对象被当作一个真正的软件组件来使用。槽用于接收信号,但他们是普通的对象成员函数。一个槽并不知道是否有所有信号和自己相连接。而且,对象并不了解具体的通信机制。你能将非常多信号和单个的槽进行连接,也能将单个的信号和非常多的槽进行连接,甚至于将一个信号和另外一个信号相连接也是可能的,这时无论第一个信号什么时候发射系统都将即时发射第二个信号。总之,信号和槽构造了一个强大的部件编程机制。原型界面,如图37。图37原型界面界面跳转关系点击“添加”目录弹出对话框,如图38。图38对话框点击选择确认后歌曲后把歌曲内容显示在歌曲列表栏。点击图像显示小窗口。331出错信息1如果出现MAINO可能编写错误,需要认真查找代码。2运行时易出现QMAKE错误或者MAKE,这是QT4常出现的错误,其他计算机也经常出现。3QMAKE是一个协助简化跨平台进行专案开发的构建过程的工具程式,QT附带的工具之一。QMAKE能够自动生成MAKEFILE、MICROSOFTVISUALSTUDIO专案文件和XCODE专案文件。不管源代码是否是用QT写的,都能使用QMAKE,因此QMAKE能用于很多软件的构建过程。手写MAKEFILE是比较困难而且容易出错,尤其在进行跨平台开发时必须针对不同平台分别撰写MAKEFILE,会增加跨平台开发复杂性与困难度。QMAKE会根据专案文件(PRO)里面的信息自动生成适合平台的MAKEFILE。开发者能够自行撰写专案文件或是由QMAKE本身产生。QMAKE包含额外的功能来方便QT开发,如自动的包含MOC和UIC的编译规则。332补救措施故障出现后可能采取的变通措施,如果打开项目出现如下,图39。图39对话框说明要切换版本,直接“确定”忽略,进入界面可能运行不了会出现此时运行部了,构建里边除了问题,直接点击构建会出现,如图310。图310构建会出现MAKE错误接下来检查一下我做的工程文件夹,看是否用了中文,要确保POR工程项目文件的路径里面没有中文。我的工程路径为CFKNANA8QMUSICPRO说以不会出问题;此时可能还有构建项目QMAKE错误或MAKE,那么单击“项目”,如图311。图311QT版本将QT版本换成另外一个,就基本解决,若还不行的话,需要按装QT5,那个版本相对稳定。4详细设计41具体模块设计详细设计说明书又可称程序设计说明书。编制目的是说明一个软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,如果一个软件系统比较简单,层次很少,本文件可以不单独编写,有关内容合并入概要设计说明书。411编写目的本音乐播放软件的详细设计说明书是面向程序员和测试员的,目的在于程序员根据软件概要设计和详细设计编译程序代码,同时也是向程序测试员分配测试的依据。412背景A本项目的任务提出者太原理工大学;B开发者樊凯;C用户指导老师。413定义这个软件设计的目的就是制作一个能够播放音频的播放器。在播放的文件方面,播放的是本地的音频文件它除具备一些基本的音乐操作处理功能(暂停、播放、音量调节、拖动、停止等),如图41。图41播放器的外观尽管此播放器在稳定性、视觉效果、歌曲库的大小等方面远远不如当今的很多播放软件,但是它具有小巧,长时间听歌后占用硬盘空间小,是一款属于自己的实用的播放器。此播放器是在WINDOWS操作系统下的QT4集成环境下完成的,QT是跨平台的开发软件,只要将此播放器的代码在其他QT能够运行的平台上重新编译就可以在当前平台上运行。42程序系统的结构421程序描述现今音乐播放软件的发展迅速,各项功能越来越完善,附加功能也随着技术的发展而日益增多。但我开发的是一款小型简单的播放器,单用系统资源少,使用方便,更主要便于自己的学习和能力的提高。422功能时序图描述对象是如何交互的,并且将重点放在消息序列上。也就是说,描述消息是如何在对象间发送和接收的。时序图有两个坐标轴纵坐标轴显示时间,横坐标轴显示对象。每一个对象的表示方法是矩形框中写有对象和/或类名,且名字下面有下划线;同时有一条纵向的虚线表示对象在序列中的执行情况即发送和接收的消息对象的活动,这条虚线称为对象的生命线。对象间的通信用对象的生命线之间的水平的消息线来表示,消息线的箭头说明消息的类型,如同步,异步或简单。浏览时序图的方法是,从上到下查看对象间交换的消息,分析那些随着时间的流逝而发生的消息交换。时序图中的消息可以是信号、操作调用或类似于C中的RPC(REMOTEPROCEDURECALL,远程过程调用)或JAVA中的RMI(REMOTEMETHODINVOCATION,远程方法调用)。当对象接收到一个消息时,该对象中的一项活动就会启动,我们把这一过程称做激活(ACTIVATION)。激活会显示控制焦点,表明对象在某一个时间点开始执行。一个被激活的对象或者是执行它自身的代码,或者是等待另一个对象的返回(该被激活的对象已经向另一个对象发送了消息)。在图形上,激活被绘制为对象生命线上的一个瘦高矩形。消息可以用消息名及参数来标识。消息还可带有条件表达式,表示分支或决定是否发送消息。如果用于表示分支,则每个分支是相互排斥的,即在某一时刻仅可发送分支中的一个消息。消息也可以有顺序号,但是在时序图中,消息的顺序号很少使用,因为时序图已经将消息的顺序显式地表示出来了。一个对象可以通过发送消息来创建另一个对象,当一个对象被删除或自我删除时,该对象用“X“标识。子模块名功能需求程序添加文件1用户左键单击添加选项2系统弹出添加窗体3用户选择歌曲或小说单击确定略图42时序图设计423性能MP3文件大小010MB该软件的时间特性要求1响应时间0012S;2数据的转换和传送时间0012S。424模块的实现1播放进度通过PNONONSEEKSLIDER,设置它的媒体管理源为改音乐播放器的源就可以了。如SEEKSLIDERSETMEDIAOBJECTMEIDAOBJECT2音量控制通过PHONONVOLUMESILDER,关联媒体输出设备,如VOLUMESILDERSETAUDIOOUTPUTAUDIOOUTPUT3播放此功能比较简单,当点击播放按钮时,隐藏播放按钮,显示暂停按钮,并读取CURRENT中的信息,通过PHONON的函数PLAY实现播放。先把媒体管理源和媒体连接设备建立连接(PATH),在通过信号槽机制,当用户打击PALY按钮时,则播放音乐。如AUDIOOUTPUTNEWPHONONAUDIOOUTPUTPHONONMUSICCATEGORY,THISMEDIAOBJECTNEWPHONONMEDIAOBJECTTHISPHONONCREATEPATHMEDIAOBJECT,AUDIOOUTPUTON_PLAYBUTTON_CLICKEDPLAYACTIONTRIGGER/触发播放按钮CONNECTPLAYACTION,SIGNALTRIGGERED,MEDIAOBJECT,SLOTPLAY或者PLAYBUTTON,SIGNALCLICKED,MEDIAOBJECT,SLOTPLAY4暂停此功能也比较简单,当点击暂停按钮时,隐藏暂停按钮,显示播放按钮,调用PHONON中的PAUSE函数,将播放暂停。5上一首和下一首这里主要是获取QTABLEWIDGET里面的选项,通过索引INDEX的值来确定。改变QTABLEWIDGET的行号。从PHONONMEDIASOURCE的LIST来获取他的源信息。代码QLISTSOURCES槽触发ON_NEXTBUTTON_CLICKEDINDEXSOURCESINDEXOFMEIDAOBJECTCURRENTSOURCE1MEDIAOBJECTSTOPMEDIAOBJECTSETCURRENTSOURCESOURCESATINDEX/跳到改源信息6歌曲的显示通过QTABLEWIDGET类来获取歌曲信息,并存入SOURCES中,最后把他显示在QTABLEWIDGET中。通过PHONONMEDIAOBEJCT的METADATA来获取歌曲的源信息,因为歌曲中本来就储存了改信息,每个文件都存储了和该文件相关的信息,多有就可以用媒体管理源直接调用就行包括ALBUM,ARTIST,DATE等,创建QTABLEWIDGETITEM项,最后通过QTABLEWIDGET的SETITEM把QTABLEWIDGETITEM添加进去就可以了。代码QMAPMETADATAMETAINFORMATIONRESOLVERMETADATAQTABLEWIDGETITEMTITLEITEMNEWQTABLEWIDGETTITLEQTABLEWIDGETITEMARTISTNEWQTABLEWIDGETMETADATAVALUE“ARTIST”如果包括多个选项,则返回最近插入的记录。INTCURRENTROWTABLEWIDGETROWCOUNT/返回当前所在的行TABLEWIDGETINSERTROWCURRENTROW/插入一个空行TABLETABLEWIDGETSETITEMCURRENTROW,0,TITLEITEM/插入一个记录TABLETABLEWIDGETSETITEMCURRENTROW,1,TITLEITEM/后移PHONONMEDIASOURCESOURCEMETAINFORMATIONCURRENTSOURCEINTINDEXSOURCESINDEXOFMETAINFORMATIONRESOLVERCURRENTSOURCE1IFSOURCESSIZEINDEXMETAINFORMATIONRESLOVERSETCURRENTSOURCESOURCESATINDEXTABLEWIDGETRESIZECOLUMNTOCONTENTS/调整TABLEWIDGET列宽度,使其和内容相适宜。7添加歌曲主要用到QFILEDIALOG类的静态函数GETOPENFILENAMES/添加的是多个文件名,并且要记得把源文件信息存储在SOURCES中代码QSTRINGLISTFILESQFILEDIALOGGETOPENFILENAMESTHIS,TR“打开文件”,/第三个参数是路径/INTINDEXSOURCESSIZEFOREACHQSTRINGSTR,FILESPHONONMEDIASOURCESSOURCESTRSOURCESAPPENDSOUECE8时间的显示用信号槽来实现。首先设置媒体对象源设计2个时钟周期的时间间隔。当时间间隔到了的时候,就触发时间LCDNUMBER发生改变;CONNECTMEDIAOBJECT,SIGNALTICKQINT64,THIS,SLOTTICKQINT64,此语句将播放对象的时间变化对应上了函数TICKQINT64,而当前播放的时间会传给TICK函数。时间显示的控件是QLCDNUMBER类,在函数中,将播放的当前时间进行转化,再通过控件的DISPLAY方法就可以实现时间的显示。代码MEDIAOBJECTSETTICKINTERVAL1000/每隔一秒钟触发一次CONNECTMEDAOBJECT,SIGNALTICKQINT64,THIS,SLOTTICKQINT64VOIDTICKQINT64TIMEQTIMEDISPLAYTIME0,TIME/600060,TIME/100060LCDNUMBERDISPLAYDISPLAYTIMETOSTRING“MMSS9播放本地文件点击打开本地文件会跳出获取本地文件路径和名称的对话框,当用户选中后,因为它是本地文件,会直接把地址赋给播放的对象,而不会经过CURRENT结构体,SONGPOS也不会改变,而且由于本地文件不是服务器端提供的,所以喜欢和不喜欢功能不能使用,当播放完后继续播放USERSONGXML中的下一首。算法,如图43。图43功能模块头文件MAINCPPINCLUDEINCLUDE“QPLAYERH“INCLUDEINTMAININTARGC,CHARARGVQAPPLICATIONAARGC,ARGVQTEXTCODECSETCODECFORTRQTEXTCODECCODECFORLOCALEQPLAYERWWSHOWRETURNAEXEC425注释设计说明准备在本程序中安排的注释,如1加在模块首部的注释;2加在各分枝点处的注释;3对各变量的功能、范围、缺省条件等所加的注释;4对使用的逻辑所加的注释等等;本程序的运行需要WIN7系统,用QT47打开。426测试计划添加一个文件,预期结果播放列表中显示添加的文件名,点击确定,在点击播放,并可播放。QPLAYERCP部分功能代码如下INCLUDE“QPLAYERH“INCLUDEINCLUDE“UI_QPLAYERH“INCLUDEINCLUDEQPLAYERQPLAYERQWIDGETPARENTQMAINWINDOWPARENT,UINEWUIQPLAYERAUDIOOUTPUTNEWPHONONAUDIOOUTPUTPHONONMUSICCATEGORY,THIS/初始化系列变量MEDIAOBJECTNEWPHONONMEDIAOBJECTTHISMETAINFORMATIONRESOLVERNEWPHONONMEDIAOBJECTTHISMEDIAOBJECTSETTICKINTERVAL1000CONNECTMEDIAOBJECT,SIGNALTICKQINT64,THIS,SLOTTICKQINT64CONNECTMEDIAOBJECT,SIGNALSTATECHANGEDPHONONSTATE,PHONONSTATE,THIS,SLOTSTATECHANGEDPHONONSTATE,PHONONSTATECONNECTMETAINFORMATIONRESOLVER,SIGNALSTATECHANGEDPHONONSTATE,PHONONSTATE,THIS,SLOTMETASTATECHANGEDPHONONSTATE,PHONONSTATECONNECTMEDIAOBJECT,SIGNALCURRENTSOURCECHANGEDCONSTPHONONMEDIASOURCECONNECTMEDIAOBJECT,SIGNALABOUTTOFINISH,THIS,SLOTABOUTTOFINISHPHONONCREATEPATHMEDIAOBJECT,AUDIOOUTPUTSETUPACTIONSUISETUPUITHISUISEEKSLIDERSETMEDIAOBJECTMEDIAOBJECTUIVOLUMESLIDERSETAUDIOOUTPUTAUDIOOUTPUTUIVOLUMESLIDERSETSIZEPOLICYQSIZEPOLICYMAXIMUM,QSIZEPOLICYMAXIMUMQPALETTEPALETTEPALETTESETBRUSHQPALETTELIGHT,QTDARKGRAYUILCDNUMBERSETPALETTEPALETTEQSTRINGLISTHEADERSHEADERSTABLEWIDGETSETHORIZONTALHEADERLABELSHEADERSUITABLEWIDGETSETSELECTIONMODEQABSTRACTITEMVIEWSINGLESELECTIONUITABLEWIDGETSETSELECTIONBEHAVIORQABSTRACTITEMVIEWSELECTROWSCONNECTUITABLEWIDGET,SIGNALCELLPRESSEDINT,INT,THIS,SLOTTABLECLICKEDINT,INTUILCDNUMBERDISPLAY“0000“UIPAUSEBUTTONHIDEQPLAYERQPLAYERDELETEUIVOIDQPLAYERCHANGEEVENTQEVENTEQMAINWINDOWCHANGEEVENTESWITCHETYPECASEQEVENTLANGUAGECHANGEUIRETRANSLATEUITHISBREAKDEFAULTBREAKVOIDQPLAYERSETUPACTIONSPLAYACTIONNEWQACTIONSTYLESTANDARDICONQSTYLESP_MEDIAPLAY,TR“PLAY“,THISPLAYACTIONSETSHORTCUTTR“CRLP“PLAYACTIONSETDISABLEDTRUEPAUSEACTIONNEWQACTIONSTYLESTANDARDICONQSTYLESP_MEDIAPAUSE,TR“PAUSE“,THISPAUSEACTIONSETSHORTCUTTR“CTRLA“PAUSEACTIONSETDISABLEDTRUESTOPACTIONNEWQACTIONSTYLESTANDARDICONQSTYLESP_MEDIASTOP,TR“STOP“,THISSTOPACTIONSETSHORTCUTTR“CTRLS“STOPACTIONSETDISABLEDTRUENEXTACTIONNEWQACTIONSTYLESTANDARDICONQSTYLESP_MEDIASKIPFORWARD,TR“NEXT“,THISNEXTACTIONSETSHORTCUTTR“CTRLN“PREVIOUSACTIONNEWQACTIONSTYLESTANDARDICONQSTYLESP_MEDIASKIPBACKWARD,TR“PREVIOUS“,THISPREVIOUSACTIONSETSHORTCUTTR“CTRLR“ADDFILESACTIONNEWQACTIONTR“ADDADDFILESACTIONSETSHORTCUTTR“CTRLF“CONNECTPLAYACTION,SIGNALTRIGGERED,MEDIAOBJECT,SLOTPLAYCONNECTPAUSEACTION,SIGNALTRIGGERED,MEDIAOBJECT,SLOTPAUSECONNECTSTOPACTION,SIGNALTRIGGERED,MEDIAOBJECT,SLOTSTOPCONNECTADDFILESACTION,SIGNALTRIGGERED,THIS,SLOTADDFILESVOIDQPLAYERADDFILESQSTRINGLISTFILESQFILEDIALOGGETOPENFILENAMESTHIS,TR“选择音乐文件“,QDESKTOPSERVICESSTORAGELOCATIONQDESKTOPSERVICESMUSICLOCATIONIFFILESISEMPTYRETURNINTINDEXSOURCESSIZEFOREACHQSTRINGSTRING,FILESPHONONMEDIASOURCESOURCESTRINGSOURCESAPPENDSOURC

温馨提示

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

评论

0/150

提交评论