首页 音乐播放器毕业设计

音乐播放器毕业设计

举报
开通vip

音乐播放器毕业设计摘要在信息,技术高速发展的今天,多媒体技术也越来越受到人们的重视。文章对目前使用较多的音乐播放器作出较详细的比较。通过阅读多张文献,分析了一些音乐播放器的功能并考虑了怎样能实现支持更多格式的音乐文件,怎样能满足使用者对播放器的需求。本文主要介绍了一个基于JavaApplet来实现的音乐播放器的设计。并对系统开发中涉及到的关键技术作了探讨,简要分析介绍了Java技术和Applet的工作原理,最后说明系统需要实现的功能。音乐是一种声音符号,表达人的思想感情。是人们思想的载体之一。音乐是有目的和内涵的,其中隐含了作者的生...

音乐播放器毕业设计
摘要在信息,技术高速发展的今天,多媒体技术也越来越受到人们的重视。文章对目前使用较多的音乐播放器作出较详细的比较。通过阅读多张文献,分析了一些音乐播放器的功能并考虑了怎样能实现支持更多 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 的音乐文件,怎样能满足使用者对播放器的需求。本文主要介绍了一个基于JavaApplet来实现的音乐播放器的设计。并对系统开发中涉及到的关键技术作了探讨,简要分析介绍了Java技术和Applet的工作原理,最后说明系统需要实现的功能。音乐是一种声音符号,表达人的思想感情。是人们思想的载体之一。音乐是有目的和内涵的,其中隐含了作者的生活体验,思想情怀。一款好的pc音乐播放器不仅能够提供好的音乐播放效果,更能够为用户提供方便的操作。本设计利用java语言和eclipse编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、快进、快退、下一曲、上一曲、音量调节等功能与一体,性能良好。该播放器支持MP3、WAV、MP3和AIFF等音频格式。在开发的过程中采用瀑布模型。第一阶段首先对项目进行全面、仔细的需求分析,并准确做出项目进度安排,明确每个阶段的任务;第二阶段是进行项目分模块编码;第三阶段对项目进行全面的测试和系统集成测试。关键词:JAVA;Eclipse;模块化;Applet;AbstractIntheinformation,therapiddevelopmentoftechnologytoday,themultimediatechnologyisbecomingmoreandmoreattention.Thispapermakescomparisonofthedetailtothecurrentuseofmoremusicplayer.Byreadingapluralityofliterature,analysisofsomefunctionofmusicplayerandconsiderhowtoachievethesupportmoreformatmusicfiles,howtomeettheneedsofusersoftheplayer.ThispapermainlyintroducesthedesignofaJavabasedApplettoachievemusicplayer.AndthekeytechnologiesinvolvedinthesystemdevelopmentarediscussedandanalyzedbrieflyintroducestheworkprincipleofJavatechnologyandApplet,finallyindicatedthatthesystemneedstorealizethefunction.Themusicisasoundsymbolicexpressingthemoodandthinking.Itisthecarrierofpeople'sthinking.Musicisthepurposeandcontent,whichimpliedtheauthor'slifeexperiencesandfeelings.Agoodpcmusicplayercannotonlyprovidegoodmusicplayingeffect,butalsoprovideuserswithconvenientoperation.Theplayerisusingjavalanguageandeclipseeditingtools.Givingadetailedsystemdesignprocess,partoftheinterfacemapandrunflowchartofthemainfunction,thisarticlediscussedindetailonproblemsandsolutionmethodinthedevelopmentprocess.Themusicplayersettoplay,pause,stop,fastforward,rewind,andthenextone,onavolumeadjustmentfunctionswithonegoodperformance.TheplayersupportsMP3,WAV,MP3,AIFF,etc.audioformats.ThemodelinthedevelopmentprocessisWaterfallmodel.Thefirstphaseistheprojectofcomprehensiveandcarefulneedsanalysis,accuratelymakingtheprojectscheduleandclearingeachstageofthetask.Thesecondphaseoftheprojectissub-modulecoding.Thethirdstage,theprojecttestingandsystemintegrationtesting.keywords:JAVA;Eclipse;Modularization;Applet; 目录 工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录 第一章绪论随着计算机和多媒体技术的不断发展以及个人计算机的普及,各种各样的媒体文件,媒体播放器层出不穷,而MP3(MPEGAudioLayer3)格式化以及体积小、音质也有保证的特点成为使用最为广泛的音频格式,得到了绝大多数软件和硬件媒体播放器的支持,同时WAV格式作为无损的音频格式也独树一帜。如今,软件市场上的媒体播放器百花齐放,如:Mediaplayer,酷我音乐盒,千千静听等。高音质播放器和低内存消耗是各种媒体播放器所最求的目标。1.1音乐播放器的定义随着个人电脑的普及,及多媒体信息的传播和应用已经深入我们的生活中的各个方面,其中数字音频凭借着其中占用存储空间小,声音质量高的特点风靡全球,传统磁带盒CD所统治的半壁江山已经成为了数字音频的天下。本音频播放软件采用JAVA语言编写,旨在利用JAVA的平台无关性特点做出一款通用性强,占用空间少却五脏六腑俱全的音频播放器。1.2软件开发背景及意义欣赏美妙的音乐是我们每个人在学习工作之余都会做的事,面对市场上和网络上各种花样繁多的播放器,他们不但用起来感到得心应手,而且各种功能操作非常方便。我们都用过“千千静听”,“酷狗音乐盒”,“WindowsMediaplayer”等非常优秀的播放器,但是在其使用的过程中总有些瑕疵。并且这些公司没有开放它们的源代码。我设计的这个“基于java的音乐播放器”除了能够播放一些常见的音频格式外更加易于操作和使用。此软件具有一般播放器的常用功能,界面沿用了标准的Windows窗口,主窗口的功能有对要播放文件的各种控制,所播放曲目的名称,通过主窗口能有选择的播放单个文件,单次播放和循环播放目录表中的文件。程序的开发环境是JDK,操作系统是WindowsXP,用到的主要技术为java语言,eclipse编辑软件。本次毕业设计的意义在于结合Java语言提供的先进的思想和多样的媒体控制手段,结合用户使用音乐播放器的习惯和对媒体播放器的要求,设计了一款界面清楚明了,操作简单实效,可以实现在播放列表中可以加载一个或者多个多媒体文件;自动连续播放多个多媒体文件;用户能随意改变播放顺序;在下次打开播放器时,能够自动加载上次的播放列表;在播放列表的多媒体文件播放完后可以选择自动关闭播放器或者循环播放等功能的媒体播放器。1.3发展现状及趋势音乐播放器的设计是一门集计算机技术和数字多媒体技术于一体的综合设计。随着中国计算机技术、宽带网络技术的发展,越来越多的人开始重视多媒体播放器的发展与应用。在当今信息社会以多媒体为特征的信息技术和信息产业的发展及应用对人类社会产生的影响和作用愈来愈明显,愈来愈重要。而音乐作为多媒体中的一个重要组成部分能改变信息的包装,实现知识信息数字化,为人们获得知识信息提供极大的方便和无穷的乐趣。友善的人机界面、多种多样的多媒体教学软件、诱人的电子游艺节目、身临其境的多媒体导购系统、五花八门的信息家电和高效方便的网上查询等等,无不渗透着多媒体的作用,它引导人们进入了一个有声有色的世界。同时,多媒体的发展和应用,极大地推动了各行各业的相互渗透和飞速发展,大大改变了人类社会的工作环境和生活方式。可毫不夸张地说,多媒体产业的形成和发展,不仅引起了计算机工业的一次革命,也正在深刻地影响人类社会发生巨大的变革。多媒体技术的发展在很大程度上依靠于多媒体软件开发的水平。多媒体技术是当今信息技术领域发展最快、最活跃的技术,是新一代电子技术发展和竞争的焦点。多媒体技术融计算机、声音、文本、图像、动画、视频和通信等多种功能于一体,借助日益普及的高速信息网,可实现计算机的全球联网和信息资源共享,因此被广泛应用在咨询服务、图书、教育、通信、军事、金融、医疗等诸多行业,并正潜移默化地改变着我们生活的面貌。人类社会逐渐进入信息化时代,社会分工越来越细,人际交往越来越频繁,群体性、交互性、分布性和协同性将成为人们生活方式和劳动方式的基本特征,其间大多数工作都需要群体的努力才能完成。但在现实生活中影响和阻碍上述工作方式的因素太多,如打电话时对方却不在。即使电话交流也只能通过声音,而很难看见一些重要的图纸资料,要面对面的交流讨论,又需要费时的长途旅行和昂贵的差旅费用,这种方式造成了效率低、费时长、开销大的缺点。今天,随着多媒体计算机技术和通信技术的发展,两者相结合形成的多媒体通信和分布式多媒体信息系统较好地解决上述问题。随着网络技术的不断发展和Internet的逐渐普及,人们对网络产品需求也不断增长。如今流行的网络音乐播放器虽然很多,但都或多或少存在一些缺陷,比如:没有记忆的功能;下次播放的时候不能从上次离开的曲目开始;没有身份认证功能;不能有效的保护媒体播放器里面的歌曲专有性;功能组合与用户的习惯相违背;界面太复杂以及操作太难等。随着人们对娱乐要求的提高,一款别致的、贴近用户操作习惯的音乐播放器非常值得去研究和开发。第二章相关技术简介2.1Java技术简介Java语言具有许多特点,当然也是它的优点,即简单性、分布性、高安全性、面向对象、与结构的无关性、可移植性、多线程及动态性等等。简单性:Java语言是一种面向对象的语言,如果你对面向对象的编程的基本概念有了一定的了解,就可以比较快地学会Java语言编程。Java力图在功能齐备的基础上不增加所谓的超级特点,它毫不客气地取消了指针、运算符重载和多重继承的概念,以一种明晰的面向对象的方法帮助用户表达他们的想法。Java是一种简单的语言。Java取消了其它的许多编程语言中十分繁琐的和难以理解的内容,例如C/C++中的指针,C++中类的多重继承等。Java语言在外观上让大多数程序员都感到很熟悉,这样程序员不需要经过长时间训练就能够学会使用这种新型的程序开发工具。Java要求的基本解释器约为40KB,若加上基本的程序库,约为215KB。由于Java程序很小,因此在小型机上Java程序也能够很好地执行。Java是一种面向对象的语言。这里的“对象”是指应用程序的数据及其操作方法。Java程序的设计思想不同于C语言基于过程的程序设计思想。设计面向对象的程序需要将编程重点放在资料和接口上。Java是一种分布式的语言。Java有一个很周全的程序库,且很容易与HTTP和TCP/IP通信 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 相配合。Java应用程序能在网络上开启并连结使用对象,就如同透过URL链接使用一个本地文件系统。利用Java来开发分布式的网络程序是Java的一个重要应用。2.2JMF媒体框架技术JMF意为Java媒体框架(JMF)。该核心框架支持不同媒体(如:音频输出和视频输出)间的时钟同步。它是一个标准的扩展框架,允许用户制作纯音频流和视频流。JMF实际上是Java的一个类包。JMF2.1.1技术提供了先进的媒体处理能力,从而扩展了Java平台的功能。这些功能包括:媒体捕获、压缩、流转、回放,以及对各种主要媒体形式和编码的支持,如M-JPEG、H.263、MP3、RTP/RTSP(实时传送协议和实时流转协议)、MacromediasFlash、IBM的HotMedia和Beatniks的RichMediaFormat(RMF)等。JMF2.1.1还支持广受欢迎的媒体类型,如Quicktime、MicrosoftsAVI和MPEG-1等。此外,JMF2.1.1软件中包括了一个开放的媒体架构,可使开发人员灵活采用各种媒体回放、捕获组件,或采用他们自己的定制的内插组件。Sun以四种不同的专用版本提供JMF2.1.1技术,满足专业开发人员的各类需求,第一个是一个轻便型版本,它完全采用Java语言编写,适用于任何Java兼容系统。此外,开发人员还可选择分别适用于Solaris、Windows或Linux等操作系统的性能最优化软件包,以提高性能和能力。JMF2.1.1软件也是JavaMedia系列软件的一部分。JavaMedia系列软件包括Java3D、Java2D、JavaSound和JavaAdvancedImaging等API。采用各种JavaMediaAPI,软件开发商人员就能容易、快速地为他们已有的各种应用程序和客户端Java小程序增添丰富的媒体功能,如流式视频、3D图像和影像处理等。就是说,各种JavaMediaAPI发挥了Java平台的固有优势,将"编写一次,到处运行"的能力扩展到了图像、影像和数字媒体等各种应用领域,从而大大缩减了开发时间和降低了开发成本。2.3JDK技术Java编译器将Java源代码文件编译成可执行的Java字节码。Java源代码文件的扩展名为.java,Java编译器把这种扩展名的文件编译成扩展名为.class的文件。源文件中的每个类在编译后都将产生一个class文件,这意味一个Java源代码文件可能编译生成多个class文件。Java解释器对编译生成的字节码格式的可执行程序的运行提供支持,它是运行非图形Java程序的命令行工具。它是JavaApplet的简单测试工具,可使用它来测试JavaApplet程序,而不需要WWW浏览器的支持。JDK(JavaDevelopmentKit)是SunMicrosystems针对Java程序员开发的产品。自从Java推出以来,JDK已经成为使用最广泛的JavaSDK(Softwaredevelopmentkit)。JDK是整个Java的核心,包括了Java运行环境(JavaRuntimeEnvironment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(JavaVirtualMachine)运行效率要比SunJDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。但不管怎么说,我们还是需要先把SunJDK掌握好。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本信息也不再延续以前的1.2,1.3,1.4,而是变成了5.0,6.0了。从6.0开始,其运行效率得到了非常大的提高,尤其是在桌面应用方面。JDK本身使用了Java语言编写,在我们下载的安装包里,有一个src.zip,里面就是JDK的源代码。第三章系统分析3.1功能需求3.1.1播放器的基本控制需求根据项目的目标,我们可获得项目系统的基本需求,以下从不同的角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成以下几部分来概括,即播放器的基本控制需要。在播放器正在运行时,用户选择一首歌曲后单击“播放”按钮,播放器将播放选中的播放列表中的音乐,并同时显示当前进度;当歌曲未暂停或停止时,用户单击“暂停”按钮,播放器将进入暂停状态;播放器正在播放或暂停时,用户单击“停止”按钮,播放器将停止播放或暂停时,用户点击“上一首”或者“下一首”按钮,播放器将播放上一首或下一首歌曲。3.1.2功能需求分析从时序图3-2中可以看出播放器运行原理和调用过程。主界面打开文件/文件夹播放列表选择播放歌曲播放界面播放方法播放歌曲播放方法添加单首歌曲添加曲歌文件夹播放界面调用方法返回播放图3-23.2运行及其它需求分析硬件条件:赛扬CPU、1G内存、10G硬盘以上的PC机。软件条件:WindowsXP、eclipse3.7.2、jdk1.6.0。本软件对其它软件几乎没有依赖性,程序健壮性较好有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可测试性等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。3.3可行性分析3.3.1经济及技术可行性经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。由于本系统是作为毕业设计由我自己开发的,在经济上的投入甚微,系统建成之后将为今后播放音乐提供很大的方便,估算新系统的开发费用和今后的运行、维护费用,估计新系统将获得的效益,并将费用与效益进行比较,看是否有利。开发、运行和维护费用主要包括:购买和安装设备的费用:计算机硬件、系统软件、电源、空调等;软件开发费用:若由实习单位的技术人员开发,则该项费用可以计入下面的人员费用一项;人员费用:系统开发人员、操作人员和维护人员的工资、 培训 焊锡培训资料ppt免费下载焊接培训教程 ppt 下载特设培训下载班长管理培训下载培训时间表下载 费用等;消耗品费用:系统开发所用材料、系统正常运行所用消耗品,例如水、电费、打印纸、软盘、色带等开支。结合该毕业设计的整个过程所有开支都不大,所以经济上是可行的。技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。该音乐播放器用的是java语言开发的,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:用的是eclipse,它的速度快、可靠性能高、价格低,完全能满足系统的需求。3.3.2运行及法律可行性对新软件运行后给现行系统带来的影响(包括组织机构、管理方式、工作环境等)和后果进行估计和评价。同时还应考虑现有管理人员的培训、补充,分析在给定时间里能否完成预定的系统开发任务等。运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 的可行性。当前我国信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。从时间上看,时间上是有点紧,但通过一个多月的努力基本功能现在已经基本实现。在法律可行性上从以下几点考虑:①所有技术资料都为合法。②开发过程中不存在知识产权问题。③未抄袭任何已存在的课程信息管理系统,不存在侵犯版权问题。④开发过程中未涉及任何法律责任。综上所述,本系统的开发从技术上、从经济上、从法律上都是完全可靠的。第四章软件结构及界面设计4.1软件结构设计本软件不仅要求功能完善,而且还要界面友好,因此,对于一个成功的软件设计,功能模块的设计是关键。在需求分析阶段,搞清楚了软件“做什么”的问题,形成了目标软件的逻辑模型。现在我们所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求。我们需要描述的是系统的总的体系结构。软件的设计中最重要的就是软件的模块化。模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。主界面添加?播放列表播放?播放音乐程序结束图4-1音乐播放器系统流程图4.2界面功能模块设计主界面功能如图4.2.1:主界面上一曲播放/暂停下一曲停止静音/声音播放状态图4.2.1音乐播放器的界面有“文件”、“播放”、2个主菜单,其中“文件”菜单包含“打开文件”、”添加音乐文件夹”“退出系统”三个菜单项,“播放”菜单里包含“播放/暂停”“停止”,“音乐魔方”,”播放模式”,“播放背景”。菜单项如图4-2所示。菜单主要功能模块如图4.2.2菜单文件播放列表菜单添加音乐添加音乐文件夹退出播放/暂停播放/暂停音乐魔方播放模式歌词背景单曲循环全部循环随机播放列表菜单播放删除清空列表添加音乐添加音乐图4.2.2下图是播放器主界面如图3.4:图3.4第五章播放器详细设计播放器采用JAVA为开发语言,下面详细介绍了系统各个模块与功能的实现。5.1文件菜单详细设计文件菜单只要包括:添加音乐文件,添加音乐文件夹,退出功能:如图5.1。图5.15.1.1添加音乐文件主要实现方法:/***打开音乐文件*/publicvoidopenMusicFile(){intselectState=0;FilechooserFile=null;JFileChooserchooser=newJFileChooser();MP3FileFiltermp3FileFilter=newMP3FileFilter();WAVFileFilterwavFileFilter=newWAVFileFilter();chooser.setCurrentDirectory(newFile("."));chooser.setDialogTitle("选择音乐文件");chooser.setApproveButtonText("确定");chooser.setApproveButtonToolTipText("选择音乐文件");chooser.addChoosableFileFilter(wavFileFilter);chooser.addChoosableFileFilter(mp3FileFilter);chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);//只选择文件selectState=chooser.showOpenDialog(this);if(selectState==JFileChooser.APPROVE_OPTION){chooserFile=chooser.getSelectedFile();if(chooserFile.toString().toLowerCase().endsWith(".mp3")||chooserFile.toString().toLowerCase().endsWith(".wav")){SongInfonewSong=newSongInfo(chooserFile.toString());RightPanel.getInstance().addSongFiletoList(newSong);}}}//监听事件,通过判断语句判断是否点击了添加音乐文件的菜单,然后调用openMusicFile();方法publicvoidactionPerformed(ActionEvente){Stringaction=e.getActionCommand();if("添加音乐文件".equals(action)){mini.openMusicFile();}5.1.2添加音乐文件夹的功能实现/***打开音乐文件夹*/publicvoidopenMusicFolder(){intselectState=0;FilechooserFolder=null;JFileChooserchooser=newJFileChooser();chooser.setCurrentDirectory(newFile("."));chooser.setDialogTitle("选择音乐文件夹");chooser.setApproveButtonText("确定");chooser.setApproveButtonToolTipText("选择音乐文件夹");chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);//只选择文件夹selectState=chooser.showOpenDialog(this);if(selectState==JFileChooser.APPROVE_OPTION){chooserFolder=chooser.getSelectedFile();StringsongPath[]=chooserFolder.list();intlength=songPath.length;for(inti=0;ix=newArrayList();ArrayListy=newArrayList();intwidth=img.getWidth(null);//图像宽度intheight=img.getHeight(null);//图像高度//筛选像素//首先获取图像所有的像素信息PixelGrabberpgr=newPixelGrabber(img,0,0,-1,-1,true);try{pgr.grabPixels();}catch(InterruptedExceptionex){ex.getStackTrace();}intpixels[]=(int[])pgr.getPixels();//循环像素for(inti=0;i0?i%width-1:0);y.add(i%width==0?(i==0?0:i/width-1):i/width);}}//建立图像矩阵并初始化(0为透明,1为不透明)int[][]matrix=newint[height][width];for(inti=0;i>24)&0xff;}@Overridepublicvoidpaint(Graphicsg){//super.paint(g);//运行此行会导致鼠标进入窗体时窗口闪烁g.drawImage(img,0,0,null);bf.repaint();kj.repaint();kt.repaint();zt.repaint();fh.repaint();tj.repaint();}//publicstaticvoidmain(String[]args){//repanlsample=newrepanl();//sample.setVisible(true);//}5.2.4播放模式功能实现/***随机播放*/publicstaticvoidrandomSong(){intrandNumber=(int)(Math.random()*(defaultSongInfo.size()-1));initPlayer(defaultSongInfo.elementAt(randNumber));start();defaultSongList.setSelectedIndex(randNumber);}5.2.5歌词背景功能实现歌词背景菜单包含风车,倾听,蒲公英,许愿,无背景,5个子菜单。如图5.2.5:图:5.2.5/***加载指定歌词背景的属性*@paramfile是属性文件*/privatevoidloadProperties(Stringpath){try{pp.load(FileUtils.getInputStream(path));//读取属性文件}catch(FileNotFoundExceptione){System.out.println("FileNotFound");}catch(IOExceptione){System.out.println("IOException");}}/***设置歌词背景的属性*@parami是属性的下标*/publicvoidsetProperties(inti){if(i>=0&&i=bgImageMenuItem.length||index==bgImageNum){return;}bgImageMenuItem[index].setIcon(newIconTool("images/select.png").getIcon());if(bgImageNum!=-1){bgImageMenuItem[bgImageNum].setIcon(null);}lrcp.setProperties(index);lrcLabel.repaint();bgImageNum=index;}5.3皮肤功能详细设计此功能主要采用对话框形式显示皮肤缩略图,然后根据自己喜好选择设置皮肤,也可以点击下面的更换颜色选择器自己配色。如图5.3图5.3主要功能实现代码:/***皮肤类*@authorjys1109*/publicclassMySkin{privatestaticMySkinmySkin=newMySkin();privateConfigconfig=Config.getInstance();privatePropertiespp=newProperties();privateintthemeNumer=config.getTheme();privateMySkin(){setTheme(config.getTheme());}/***加载主题*@parampath*/privatevoidloadTheme(Stringpath){try{pp.load(FileUtils.getInputStream(path));//读取属性文件}catch(FileNotFoundExceptione){System.out.println("FileNotFound");}catch(IOExceptione){System.out.println("IOException");}}/***设置主题*@parami*/publicvoidsetTheme(inti){Stringpath="minimusic/syj/properties/theme/theme"+i+".properties";loadTheme(path);config.setTheme(i);this.themeNumer=i;refreshSystem();}/***系统UI进行更新*/privatevoidrefreshSystem(){TitlePanel.getInstance().setTheme(themeNumer);MyMenuBar.getInstance().setMenuBackgroundColor(getBackgroundColor());MyPopupMenu.getInstance().setBackgroundColor(getBackgroundColor());BottomPanelbpnl=BottomPanel.getInstance();bpnl.setBackgroundColor(getForegroundColor());MySliderUI.setSliderColor(getForegroundColor());bpnl.getTimeSlider().setUI(newMySliderUI(bpnl.getTimeSlider()));bpnl.getSoundSlider().setUI(newMySliderUI(bpnl.getSoundSlider()));bpnl.getSongNameLabel().setForeground(getListTextColor());bpnl.getTimeLabel().setForeground(getListTextColor());MyTabbedPaneUI.setDefaultColor(getForegroundColor());RightPanel.getInstance().getListTabPnl().setUI(newMyTabbedPaneUI());RightPanel.getInstance().getListTabPnl().setForeground(getListTextColor());MyCellRenderer.setForegroundColor(getListTextColor());MyCellRenderer.setBackgroundColor(getForegroundColor());MiniMusic.getInstance().setBorderColor(getListTextColor());MiniMusic.getInstance().repaint();}publicColorgetBackgroundColor(){returnColor.decode(pp.getProperty("bgColor"));}publicColorgetForegroundColor(){returnColor.decode(pp.getProperty("fgColor"));}publicColorgetListTextColor(){returnColor.decode(pp.getProperty("ltColor"));}publicstaticMySkingetCurrentSkin(){returnmySkin;}}当点击更换按钮时弹出系统颜色选择器,如图5.3.1图5.3.1主要功能实现代码:publicvoidactionPerformed(ActionEvente){Objectobj=e.getSource();if(obj==ccButton){ColornewColor=JColorChooser.showDialog(this,"更换颜色",null);if(newColor!=null){titlePanel.setSkinColor(newColor);MiniMusic.getInstance().repaint();}}5.4播放按钮详细设计播放按钮主要包括:上一曲/下一曲,播放/暂停,停止,声音:开/关。如图5.4主要功能实现代码:/***开始播放音乐*/publicstaticvoidstart(){if(player!=null&&!noCanPlaySong()){player.getGainControl().setLevel(soundSlider.getValue()/100.0F);setSoundState(getSoundState());player.start();//进度条更新SliderUpdateThread.initThread();SliderUpdateThread.getThread().start();SliderUpdateThread.resume();player.addControllerListener(SongControlListener.getInstance());playerState=PlayerState.PLAY;psButton.setIcon(newIconTool("images/pause.png").getIcon());psButton.setIconPath("images/pause.png");songNameLabel.setText(currentSong.getSongName());intindex=defaultSongInfo.indexOf(currentSong);defaul
本文档为【音乐播放器毕业设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥18.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
盼盼书屋
暂无简介~
格式:pdf
大小:1MB
软件:PDF阅读器
页数:0
分类:教育学
上传时间:2021-01-30
浏览量:52