音乐播放器毕业设计论文.doc_第1页
音乐播放器毕业设计论文.doc_第2页
音乐播放器毕业设计论文.doc_第3页
音乐播放器毕业设计论文.doc_第4页
音乐播放器毕业设计论文.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)( 2013届)题 目 音乐播放系统设计 学 号 1001080051 姓 名 郭轩榛 所 属 系 机电工程系 专 业 电子信息工程技术 班 级 10级电信 指导教师 沈瑛 摘 要音乐是一种声音符号,表达人的思想感情。是人们思想的载体之一。音乐是有目的和内涵的,其中隐含了作者的生活体验,思想情怀。一款好的pc音乐播放器不仅能够提供好的音乐播放效果,更能够为用户提供方便的操作。本设计利用java语言和eclipse 编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、快进、快退、下一曲、上一曲、音量调节等功能与一体,性能良好。该播放器支持MP3、WAV、MP3和AIFF等音频格式。在开发的过程中采用瀑布模型。第一阶段首先对项目进行全面、仔细的需求分析,并准确做出项目进度安排,明确每个阶段的任务;第二阶段是进行项目分模块编码;第三阶段对项目进行全面的测试和系统集成测试。在本程序的开发上,因为JAVA的跨平台性,所以可供选择的平台有许多,使得在平台的选择面上有了更大的自主权。现在社会上使用最多的平台是WINDOWS。所以该程序在WINDOWS平台下开发。关键词: Eclipse;播放器;音频技术 The design of Music Player Base on JavaAbstractThe music is a sound symbolic expressing the mood and thinking. It is the carrier of peoples thinking. Music is the purpose and content, which implied the authors life experiences and feelings. A good pc music player can not only provide good music playing effect, but also provide users with convenient operation.The player is using java language and eclipse editing tools. Giving a detailed system design process, part of the interface map and run flow chart of the main function, this article discussed in detail on problems and solution method in the development process. The music player set to play, pause, stop, fast forward, rewind, and the next one, on a volume adjustment functions with one good performance. The player supports MP3, WAV, MP3, AIFF, etc. audio formats. The model in the development process is Waterfall model. The first phase is the project of comprehensive and careful needs analysis, accurately making the project schedule and clearing each stage of the task. The second phase of the project is sub-module coding. The third stage, the project testing and system integration testing.The development of this program, there are many alternative platform, because JAVA cross platform, so have greater autonomy in the choice of platform. Now used on most platforms is the WINDOWS. Therefore, the program is developing under the WINDOWS platform.Keywords: Eclipse; Player; Audio technology 目 录摘 要IAbstractII1 前言11.1软件开发背景及意义11.2发展现状及趋势11.3主要研究方法及过程22 相关技术简介32.1 Java技术简介32.2 JavaSound技术3 2.2.1 JavaSound 的体系结构3 2.2.2 JavaSound混频原理42.3 JDK技术53需求分析73.1功能需求7 3.1.1 播放器的基本控制需求7 3.1.2功能需求分析73.2 运行及其它需求分析83.3 可行性分析8 3.3.1 经济及技术可行性8 3.3.2 运行及法律可行性94 软件结构及界面设计104.1软件结构设计104.2 GUI界面设计115详细设计135.1打开文件菜单下的详细设计13 5.1.1打开文件设计13 5.1.2退出系统设计135.2播放菜单下的详细设计145.3显示菜单下的详细设计145.4帮助菜单下的详细设计155.5播放列表的详细设计165.6播放按钮的详细设计176结论19参考文献20致 谢21- 4 - 音乐播放设计 1 前言1.1软件开发背景及意义欣赏美妙的音乐是我们每个人在学习工作之余都会做的事,面对市场上和网络上各种花样繁多的播放器,他们不但用起来感到得心应手,而且各种功能操作非常方便。我们都用过“千千静听”,“酷狗音乐盒”,“Windows Media player”等非常优秀的播放器,但是在其使用的过程中总有些瑕疵。并且这些公司没有开放它们的源代码。我设计的这个“基于java的音乐播放器”除了能够播放一些常见的音频格式外更加易于操作和使用。此软件具有一般播放器的常用功能,界面沿用了标准的Windows窗口,主窗口的功能有对要播放文件的各种控制,所播放曲目的名称,通过主窗口能有选择的播放单个文件,单次播放和循环播放目录表中的文件。程序的开发环境是JDK,操作系统是Windows XP,用到的主要技术为java语言,eclipse编辑软件。本次毕业设计的意义在于结合Java语言提供的先进的思想和多样的媒体控制手段,结合用户使用音乐播放器的习惯和对媒体播放器的要求,设计了一款界面清楚明了,操作简单实效,可以实现在播放列表中可以加载一个或者多个多媒体文件;自动连续播放多个多媒体文件;用户能随意改变播放顺序;在下次打开播放器时,能够自动加载上次的播放列表;在播放列表的多媒体文件播放完后可以选择自动关闭播放器或者循环播放等功能的媒体播放器。1.2发展现状及趋势音乐播放器的设计是一门集计算机技术和数字多媒体技术于一体的综合设计。随着中国计算机技术、宽带网络技术的发展,越来越多的人开始重视多媒体播放器的发展与应用。在当今信息社会以多媒体为特征的信息技术和信息产业的发展及应用对人类社会产生的影响和作用愈来愈明显,愈来愈重要。而音乐作为多媒体中的一个重要组成部分能改变信息的包装,实现知识信息数字化,为人们获得知识信息提供极大的方便和无穷的乐趣。友善的人机界面、多种多样的多媒体教学软件、诱人的电子游艺节目、身临其境的多媒体导购系统、五花八门的信息家电和高效方便的网上查询等等,无不渗透着多媒体的作用,它引导人们进入了一个有声有色的世界。同时,多媒体的发展和应用,极大地推动了各行各业的相互渗透和飞速发展,大大改变了人类社会的工作环境和生活方式。可毫不夸张地说,多媒体产业的形成和发展,不仅引起了计算机工业的一次革命,也正在深刻地影响人类社会发生巨大的变革。多媒体技术的发展在很大程度上依靠于多媒体软件开发的水平。多媒体技术是当今信息技术领域发展最快、最活跃的技术,是新一代电子技术发展和竞争的焦点。多媒体技术融计算机、声音、文本、图像、动画、视频和通信等多种功能于一体,借助日益普及的高速信息网,可实现计算机的全球联网和信息资源共享,因此被广泛应用在咨询服务、图书、教育、通信、军事、金融、医疗等诸多行业,并正潜移默化地改变着我们生活的面貌。人类社会逐渐进入信息化时代,社会分工越来越细,人际交往越来越频繁,群体性、交互性、分布性和协同性将成为人们生活方式和劳动方式的基本特征,其间大多数工作都需要群体的努力才能完成。但在现实生活中影响和阻碍上述工作方式的因素太多,如打电话时对方却不在。即使电话交流也只能通过声音,而很难看见一些重要的图纸资料,要面对面的交流讨论,又需要费时的长途旅行和昂贵的差旅费用,这种方式造成了效率低、费时长、开销大的缺点。今天,随着多媒体计算机技术和通信技术的发展,两者相结合形成的多媒体通信和分布式多媒体信息系统较好地解决上述问题。随着网络技术的不断发展和Internet的逐渐普及,人们对网络产品需求也不断增长。如今流行的网络音乐播放器虽然很多,但都或多或少存在一些缺陷,比如:没有记忆的功能;下次播放的时候不能从上次离开的曲目开始;没有身份认证功能;不能有效的保护媒体播放器里面的歌曲专有性;功能组合与用户的习惯相违背;界面太复杂以及操作太难等。随着人们对娱乐要求的提高,一款别致的、贴近用户操作习惯的音乐播放器非常值得去研究和开发。1.3主要研究方法及过程研究方法:主要采用行动研究法和文献法。行动分析法,制定个性研究方案,通过我们日常实践情况进行分析,再研究调整重新进行实践。首先,了解有关音乐播放器的有关技术,并对现在主流的音乐播放器进行测试并将它们不足之处改进。并将经验总结、记录,形成有价值的文字。文献法,广泛收集整理文献资料,如经典期刊,国内外前沿研究,以及指导老师推荐的书目,为今后项目开发提供具有时代性,创造性的正面指导。研究手段:主要是结合之前的开发经验,联系项目需求分析和参考文献,根据项目的特点选择适当的开发工具(eclipse)和编程技术(编程语JAVA)制定项目开发方案。实验方案:采用瀑布模型。首先对项目进行全面、仔细的需求分析,并准确做出项目进度安排,明确每个人的职责和任务。第二阶段,是进行项目分模块编码。第三阶段,选择适当的测试方法,在完成项目编码后,进行软件测试,并准备填写测试用例。对项目进行全面的测试和系统集成测试。2 相关技术简介2.1 Java技术简介Java 语言具有许多特点,当然也是它的优点,即简单性、分布性、高安全性、面向对象、与结构的无关性、可移植性、多线程及动态性等等。简单性:Java 语言是一种面向对象的语言, 如果你对面向对象的编程的基本概念有了一定的了解,就可以比较快地学会Java 语言编程。Java 力图在功能齐备的基础上不增加所谓的超级特点, 它毫不客气地取消了指针、运算符重载和多重继承的概念,以一种明晰的面向对象的方法帮助用户表达他们的想法。Java是一种简单的语言。Java取消了其它的许多编程语言中十分繁琐的和难以理解的内容,例如C/C+中的指针,+中类的多重继承等。Java语言在外观上让大多数程序员都感到很熟悉,这样程序员不需要经过长时间训练就能够学会使用这种新型的程序开发工具。Java要求的基本解释器约为40KB ,若加上基本的程序库,约为215KB。由于Java程序很小,因此在小型机上Java程序也能够很好地执行。Java是一种面向对象的语言。这里的“对象”是指应用程序的数据及其操作方法。Java程序的设计思想不同于语言基于过程的程序设计思想。设计面向对象的程序需要将编程重点放在资料和接口上。Java是一种分布式的语言。Java有一个很周全的程序库,且很容易与HTTP和TCP/IP通信协议相配合。Java应用程序能在网络上开启并连结使用对象,就如同透过URL链接使用一个本地文件系统。利用Java来开发分布式的网络程序是Java的一个重要应用。2.2 JavaSound技术JavaSound是一个小巧的底层API,支持数字音频和MIDI数据的记录/回放。在JDK 1.3.0之前,JavaSound是一个标准的Java扩展API,但从Java 2的1.3.0版开始,JavaSound就被包含到JDK之中。由于Java有着跨平台(操作系统、硬件平台)的特点,基于JavaSound的音频处理程序(包括本文的程序)能够在任何实现了Java 1.3+的系统上运行,无需加装任何支持软件。 2.2.1 JavaSound 的体系结构当前JDK的JavaSound API随同Java媒体框架(JMF,Java Media Framework)一起发布,适合JDK1.1以及更高的版本。除了JDK实现的JavaSound API之外,还有一个源代码开放的JavaSound实现是Tritonus。图2-1描述了JavaSound API的体系结构,虚线表示Sun的JavaSound标准定义的API调用。上面一根虚线表示我们编写音频处理程序要调用的API,JavaSound API包含在javax.sound.sampled和javax.sound.midi包中。两根虚线之间的部分就是JavaSound API的具体实现。图2-1:JavaSound体系结构就象上面一根虚线表示的API具有统一标准一样,在所有的JavaSound实现中,图一下面一根虚线表示的SPI(服务提供者接口,Service Provider Interface)也是统一的。SPI的作用是以插件(Plug-In)的形式提供自定义的扩展模块,我们只要提供与SPI兼容的插件扩展模块,就可以在不改变API的情况下扩展音频处理程序的能力。SPI包含在java.sound.sampled.spi和javax.sound.midi.spi包中。例如,假设有一个只能播放WAV文件的程序,我们只要增加一个支持MP3文件解码的插件模块,就可以在不改动播放程序的任何一行代码的前提下,为这个播放程中添加播放MP3的能力。2.2.2 JavaSound混频原理 图2-2阐述了JavaSound的混频器原理。在处理输入音频的应用中,对于来自各种音频输入端口的信号,例如麦克风、CD播放器、磁带播放器,等等,我们可以在它们到达TargetDataLine之前,利用混频器控制输入混频,最后在程序中通过TargetDataLine获得数字化的音频输入流。图2-2:JavaSound混频器类似地,在处理输出音频的应用中,混频器用来对一系列来自SourceDataLine的数据进行混频处理,经处理后的信号可输出到各种输出端口,例如扬声器、耳机等。SourceDataLine是一个可写入音频信号数字流的设备,例如,我们可以从一个WAV文件读取内容写入到SourceDataLine,然后再通过扬声器输出。输入到混频器的信号可以来源于剪辑。剪辑(Clip)是一个包含一段完整音频数据流的设备,或者说,剪辑就是一个缓冲在内存中的完整音频数据流。在一些要求反复播放音乐片段的场合,例如游戏的背景音乐,剪辑是很有用的。图2-3描述了JavaSound API中一些常用的类、接口及其关系,所有图三显示的类、接口都通过Line这个基本接口统一起来。Line接口用来关闭/打开设备、注册事件监听器,以及提供一些用来调整声音效果的对象,例如调整音量大小的对象。AudioSystem在JavaSound体系中起着一个工厂(Factory)类的作用,提供了一系列的静态方法,我们通过这些静态方法来获取JavaSound系统默认配置的资源(所谓静态方法,就是可以在不创建AudioSystem实例的情况下直接调用的方法)。图2-3:常用的JavaSound类在当前(JDK 1.4)实现的JavaSound的默认配置中,输入声音来自本地声卡的麦克风,输出声音到本地声卡的扬声器。应当说当前实现的JavaSound对端口和混频器的支持还不完善,但对于包括本文音乐播放器在内的许多应用来说,默认实现的JavaSound配置已经足够了。2.3 JDK技术Java编译器将Java源代码文件编译成可执行的Java字节码。Java源代码文件的扩展名为.java,Java编译器把这种扩展名的文件编译成扩展名为.class的文件。源文件中的每个类在编译后都将产生一个class文件,这意味一个Java源代码文件可能编译生成多个class文件。Java解释器对编译生成的字节码格式的可执行程序的运行提供支持,它是运行非图形Java程序的命令行工具。它是JavaApplet的简单测试工具,可使用它来测试JavaApplet程序,而不需要WWW浏览器的支持。JDK(Java Development Kit)是Sun Microsystems针对Java程序员开发的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握 JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。 从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本信息也不再延续以前的1.2,1.3,1.4,而是变成了5.0,6.0了。从6.0开始,其运行效率得到了非常大的提高,尤其是在桌面应用方面。JDK本身使用了Java语言编写,在我们下载的安装包里,有一个src.zip,里面就是JDK的源代码。3需求分析3.1功能需求3.1.1 播放器的基本控制需求根据项目的目标,我们可获得项目系统的基本需求,以下从不同的角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成以下几部分来概括,即播放器的基本控制需要,播放列表管理需求如图3-1所示。播 放暂 停停止上一曲下一曲音量控制图3-1 播放器基本控制图在播放器正在运行时,用户选择一首歌曲后单击“播放”按钮,播放器将播放选中的播放列表中的音乐,并同时显示当前进度;当歌曲未暂停或停止时,用户单击“暂停”按钮,播放器将进入暂停状态;播放器正在播放或暂停时,用户单击“停止”按钮,播放器将停止播放或暂停时,用户点击“上一首”或者“下一首”按钮,播放器将播放上一首或下一首歌曲。3.1.2功能需求分析从时序图3-2中可以看出播放器中信息发送和调用过程。主界面播放列表播放界面播放对象方法打开文件选择歌曲播放播放播放方法添加到播放列表播放页面访问播放方法返回播放界面图3-2 音乐播放器的时序图3.2 运行及其它需求分析硬件条件:赛扬CPU、 1G 内存、10G硬盘以上的PC机。软件条件:Windows XP 、 eclipse 3.7.2 、 jdk1.6.0。本软件对其它软件几乎没有依赖性,程序健壮性较好有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可测试性等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。3.3 可行性分析3.3.1 经济及技术可行性经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。由于本系统是作为毕业设计由我自己开发的,在经济上的投入甚微,系统建成之后将为今后播放音乐提供很大的方便,估算新系统的开发费用和今后的运行、维护费用,估计新系统将获得的效益,并将费用与效益进行比较,看是否有利。开发、运行和维护费用主要包括:购买和安装设备的费用:计算机硬件、系统软件、电源、空调等;软件开发费用:若由实习单位的技术人员开发,则该项费用可以计入下面的人员费用一项;人员费用:系统开发人员、操作人员和维护人员的工资、培训费用等;消耗品费用:系统开发所用材料、系统正常运行所用消耗品,例如水、电费、打印纸、软盘、色带等开支。结合该毕业设计的整个过程所有开支都不大,所以经济上是可行的。 技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。该音乐播放器用的是java语言开发的,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:用的是eclipse,它的速度快、可靠性能高、价格低,完全能满足系统的需求。3.3.2 运行及法律可行性对新软件运行后给现行系统带来的影响(包括组织机构、管理方式、工作环境等)和后果进行估计和评价。同时还应考虑现有管理人员的培训、补充,分析在给定时间里能否完成预定的系统开发任务等。运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充计划的可行性。当前我国信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。从时间上看,时间上是有点紧,但通过一个多月的努力基本功能现在已经基本实现。在法律可行性上从以下几点考虑: 所有技术资料都为合法。 开发过程中不存在知识产权问题。 未抄袭任何已存在的课程信息管理系统,不存在侵犯版权问题。 开发过程中未涉及任何法律责任。综上所述,本系统的开发从技术上、从经济上、从法律上都是完全可靠的。4 软件结构及界面设计4.1软件结构设计本软件不仅要求功能完善,而且还要界面友好,因此,对于一个成功的软件设计,功能模块的设计是关键。在需求分析阶段,搞清楚了软件“做什么”的问题,形成了目标软件的逻辑模型。现在我们所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求。我们需要描述的是系统的总的体系结构。软件的设计中最重要的就是软件的模块化。模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。播放列表是否点击要播放的歌曲音乐播放程序结束主界面是否添加歌曲加音乐文件图4-1 音乐播放器系统流程图在系统的概要设计中采用结构化设计以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构。首先将整个系统化分为几个小问题,小模块。然后,进一步细分模块,添加细节。系统流程图如图 4-1所示。4.2 GUI界面设计播放器的GUI设计可以包含两个方面:界面布局的设计和生成按扭的代码设计。在GUI设计中,我们要了解构成程序的各个GUI部件。图4-2 菜单项音乐播放器的界面有“文件”、“播放”、“显示”“帮助”4个主菜单,其中“文件”菜单包含“打开文件”、“退出系统”两个菜单项,“播放”菜单里包含“播放/暂停”“停止”,“播放控制”。菜单项如图4-2所示。鉴于构造用户界面往往需要大量的代码,且这些代码通常可以用IDE自动生成,所以对一些关键的GUI元素略作介绍,不再给出完整的代码。主界面分为上、下两个部分,上面是视觉部件,下面是控制面板。播放音频文件界面如图4-3 所示。图4-3音乐播放器的播放界面5详细设计5.1打开文件菜单下的详细设计打开文件菜单下有“打开文件”,“推出系统”两个子菜单。分别介绍如下:5.1.1打开文件设计对于一个完整的音乐播放器软件,不仅要求功能强大、操作简单,还要有良好的设计风格和另人爽目的界面。添加歌曲功能对于整个系统来说是非常重要的。通过 menuItem open = new MyMenuItem(); 来初始化变量。通过以下的if 语句进行格式判断if (menuItem_AutoChange.isSelected() = true) if (fileMode.equals(mp3) | fileMode.equals(MP3) | fileMode.equals(WAV) | fileMode.equals(wav) menu_transparence.setEnabled(true); menu_transparence1.setEnabled(true); changToMusicMode(); but_stop.setFocusable(true); if (player != null) closePlayerStream(); 判断是否选择了打开文件如果选择了则调用open();函数。Public void actionPerformed(ActionEvent e)Object source = e.getSource();if(source = menuItem_open) open();5.1.2 退出系统设计通过menuItem_exit = new MyMenuItem(“退出系统”);进行声明并初始化。在CommendActionListener() 函数中进行判断是单击了“打开文件”还是“退出系统”如果是选择了“退出系统”则直接退出系统。其主要代码如下所示。Public void actionPerformed(ActionEvent e)Object source = e.getSource();if(source = menuItem_open) open(); else if (source = menuItem_exit)/ 直接退出System.exit(0); 5.2播放菜单下的详细设计 播放菜单下包含“播放/暂停”,“停止”,“播放控制”,“播放列表”,“音量”这五个子菜单。初始化代码如下: menuItem_palyOrPause = new MyMenuItem(播放/暂停); menuItem_stop = new MyMenuItem(停止); menu_control = new MyMenu(播放控制); menu_playerMode = new MyMenu(播放列表);menuItem_sound = new MyMenu(音量); 在其执行时按照以下判断执行相应的操作。主要代码如下:else if (source = menuItem_palyOrPause | source = menuItem_paly_Popup | source = exitItem_playOrPause_SystemTray) if (BoolMember.firstPlayer) System.out.println(list.getSelectedIndex(); playMedia(list.getSelectedIndex(); else if (player != null) if (BoolMember.tempPause & BoolMember.playerOrPause) pauseMedia(); BoolMember.tempPause = false; else if (!BoolMember.playerOrPause) pauseToPlayer(); BoolMember.tempPause = true; else pauseMedia(); else if (source = menuItem_stop | source = menuItem_stop_Popup | source = exitItem_stop_SystemTray) stopMedia(); 5.3显示菜单下的详细设计 显示菜单下包括“前端显示”和“自动切换”两个子菜单。“前端显示”用来控制播放界面永远处在最前面。“自动切换”用来控制当选择了播放某一歌曲后能自动切换到小模式下进行播放。其主要代码如下所示: else if (source = menuItem_onTop) if (menuItem_onTop.isSelected() setAlwaysOnTop(true); else setAlwaysOnTop(false); else if (source = menuItem_allScreen) if (visual != null) if (!ifAllScreen) fullScreenView(); ifAllScreen = true; else originalView(); ifAllScreen = false; 5.4帮助菜单下的详细设计帮助菜单下包含“关于”,“帮助”两个子菜单。其“关于”用来显示此软件的“名称”,“版本”,“作者”等基本信息。“帮助”菜单的功能则是用来显示所有的快捷键组合。如图5-1和图5-2所示: 图5-1 关于窗口图5-2 关于窗口5.5播放列表的详细设计 播放列表如图5-3所示。选中要播放的文件然后单击右键进行列表控制。其主要代码如下所示: 通过以下代码进行初始化: menuItem_playSelect = new MyMenuItem(播放选中文件);menuItem_delete = new MyMenuItem(从列表中删除); menuItem_Addfile = new MyMenuItem(向列表中添加); menuItem_deleteAll = new MyMenuItem(清除列表文件); 通过以下判断语句处理右键操作:else if (mods & 4) != 0 & e.getSource() = list) popupMenuAll.add(menuItem_playSelect); popupMenuAll.add(menuItem_delete); popupMenuAll.add(menuItem_Addfile); popupMenuAll.add(menuItem_deleteAll); popupMenuAll.show(list, e.getX(), e.getY(); 通过以下函数执行相应的操作:public void pupupSeletedAction(Object source) if (source = menuItem_delete) removeFile(list.getSelectedIndex(), false); else if (source = menuItem_deleteAll) removeFile(list.getSelectedIndex(), true); else if (source = menuItem_Addfile) open(); else if (source = menuItem_playSelect) playMedia(list.getSelectedIndex(); 图5-3 播放列表5.6播放按钮的详细设计播放按钮如图5-4 所示,包括上一曲、播放/暂停、停止、下一曲、快进、快退、音量控制,其初始化代码如下所示:private MyButton but_rewind = null;private MyButton but_play = null;private MyButton but_stop = null;private MyButton but_fastForward = null;private MyButton but_sounds = null;private MyButton but_skipBackward = null;private MyButton but_skipForward = null;private MyButton but_pause = null;private MyButton but_music = null;private MyButton but_screen = null;改变音量的主要代码private class SoundChangListener implements ChangeListener public void stateChanged(ChangeEvent e) but_sounds.setActionCommand(false); but_sounds.setIcon(new ImageIcon(PlayUI.class.getClassLoader().getResource(images/sound.png); menuItem_noSound.setSelected(false); if (player != null) player.getGainControl().setLevel( (float) jSlider_sound.getValue() / 100); mediaMute(but_sounds.getActionCommand(); lable_infor.setText(音量: + jSlider_sound.getValue() + + 进度: + (int) newTime / 3600 + : + (int) (newTime % 3600) / 60 + : + (int) (newTime % 60); jSlider_sound.setToolTipText(jSlider_sound.getValue() + ); 图5-4 播放控制按钮6结论经过老师的悉心指导和自己的辛苦努力,大体上完成了“Java音乐播放器”的开发。但是由于时间仓促,仍有许多方面存在着不足,一些功能还是没有实现,比如播放器只可以播放java 本身支持的几种音乐格式,不能添加歌词同步,不能在线播放等,整个播放器还有许多功能需要待进一步的完善和改进。经过对毕业设计从头到尾的设计和开发,使我在大学学到的知识应用的更加熟练,达到了学以致用。 在程序设计过程中,我体会到了只有实践才能掌握知识,书本上的知识是不够的,只有把理论与实践相结合才能够真正的学到知识。一个软件的设计,不可能一步到位,还需要不断的完善和补充。同时,系统中还存在许多问题,有待在日后的使用中发现和解决。编程前的深思熟虑是减少程序调试工作量的重要方法,只有进行充分考虑,才会减少调试过程中的工作量。虽然在开始写程序之前我们做了多的准备工作,但在真正的写程序时仍然发现许多问题,有些问题是分析时的疏漏,有些则是如果不做无论如何也想不到的。参考文献1 施霞萍,张欢欢.java程序设计教程 第二版 机械功业出版社 2010,P20-315.2 耿素云,张跃平.Java实用教程M.清华大学出版社,P10-300.3 原野,沈均义,刑东山.基于Java的音乐播放器.计算机机工程,2002年,P54-57.4 刘黎明,党东耀.Java Applet 多媒体播

温馨提示

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

评论

0/150

提交评论