版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持摘要在信息,技术高速发展的今天,多媒体技术也越来越受到人们的重视。 文章对目 前使用较多的音乐播放器作出较详细的比较。通过阅读多张文献,分析了一些音乐播 放器的功能并考虑了怎样能实现支持更多格式的音乐文件,怎样能满足使用者对播放 器的需求。本文主要介绍了一个基于 Java Applet来实现的音乐播放器的设计。并对 系统开发中涉及到的关键技术作了探讨,简要分析介绍了Java技术和Applet的工作原理,最后说明系统需要实现的功能。音乐是一种声音符号,表达人的思想感情。是人们思想的载体之一。音乐是有目 的和内涵的,其中隐含了作者的生活体
2、验,思想情怀。一款好的 pc音乐播放器不仅 能够提供好的音乐播放效果,更能够为用户提供方便的操作。本设计利用java语言和eclipse 编辑工具对播放器进行编写。同时给出了详 细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程中遇到的 问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、快进、快退、下一曲、上一曲、音量调节等功能与一体,性能良好。该播放器支持 MP3 WAV MP3 和AIFF等音频格式。在开发的过程中采用瀑布模型。第一阶段首先对项目进行全面、 仔细的需求分析,并准确做出项目进度安排,明确每个阶段的任务;第二阶段是进行 项目分模块编码;第三阶段对项
3、目进行全面的测试和系统集成测试。关键词:JAVA; Eclipse ;模块化;Applet ;I文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持AbstractIn the information, the rapid development of technology today,the multimedia technology is becoming more and more attention. This paper makes comparison of the detail to the current use of mo
4、re music player. By reading a plurality ofliterature, analysis of some function of music player and consider how to achieve the support more format music files,how to meet the needs of users of the player. This paper mainly introduces the design of a Java based Applet to achieve music player. And th
5、e key technologies involved in the system development are discussed and analyzed brieflyintroduces the work principle of Java technology and Applet,finally indicated that the system needs to realize the function.The music is a sound symbolic expressing the mood and thinking. It is the carrier of peo
6、ples thinking. Music is the purpose and content, which implied the au thors life experiences and feelings. A good pc music player can not only provide g ood music playing effect, but also provide users with convenient operation.The player is using java language and eclipse editing tools. Giving a de
7、tailed s ystem design process, part of the interface map and run flow chart of the main fun ction, this article discussed in detail on problems and solution method in the devel opment process. The music player set to play, pause, stop, fast forward, rewind, a nd the next one, on a volume adjustment
8、functions with one good performance. Th e player supports MP3, WAV, MP3, AIFF, etc. audio formats. The model in the dev elopment process is Waterfall model. The first phase is the project of comprehensi ve and careful needs analysis, accurately making the project schedule and clearin g each stage of
9、 the task. The second phase of the project is sub-module coding. T he third stage, the project testing and system integration testing.key words: JAVA ; Eclipse ; Modularization ; Applet ;目录毕业论文(设计)诚信承诺书 错误!未定义书签。四川科技职业学院毕业论文评审表 错误!未定义书签。II文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持四川科技职业学院
10、毕业论文评审表 四川科技职业学院毕业设计(论文)任务书第一章 绪论音乐播放器的定义软件开发背景及意义 发展现状及趋势第二章相关技术简介Java技术简介JMF媒体框架技术 JDK 技术第三章系统分析功能需求误误误误误误误误误误误误错错错错错错错错错错错错运行及其它需求分析.可行性分析经济及技术可行性运行及法律可行性软件结设计界面功能模块设计.第五章播放器详细设计5.1文件菜单详细设计,错误 错误 错误 错误 错误 错误 错误 错误未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。
11、未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。 未定义书签。添加音乐文件夹的功酢实现 错误!未定义书签。1艮出功酢实现错误!未定义书签。播放菜单详细设计错误!未定义书签。播放/暂停功能实现 错误!未定义书签。停1上功能实现错误!未定义书签。音乐魔方实现错误!未定义书签。播放模式功能实现错误!未定义书签。歌词背景功能实现 错误!未定义书签。皮肤功能详细设计错误!未定义书签。播放按钮详细设计错误!未定义书签。5歌词同力详细设计 错误!未定文书签。错误错误错误未定义书签。未定义书签。未定义书签。结论. 致谢.
12、 参考文献III文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持第一章绪论随着计算机和多媒体技术的不断发展以及个人计算机的普及,各种各样的媒体文 件,媒体播放器层出不穷,而 MP3(MPEG Audio Layer3)格式化以及体积小、音质也 有保证的特点成为使用最为广泛的音频格式,得到了绝大多数软件和硬件媒体播放器 的支持,同时 WAV格式作为无损的音频格式也独树一帜。如今,软件市场上的媒体 播放器百花齐放,如:Mediaplayer,酷我音乐盒,千千静听等。高音质播放器和低内 存消耗是各种媒体播放器所最求的目标。音乐播放器的定义随着
13、个人电脑的普及,及多媒体信息的传播和应用已经深入我们的生活中的各个 方面,其中数字音频凭借着其中占用存储空间小,声音质量高的特点风靡全球,传统磁带盒CD所统治的半壁江山已经成为了数字音频的天下。本音频播放软件采用JAVA语言编写,旨在利用JAVA的平台无关性特点做出一 款通用性强,占用空间少却五脏六腑俱全的音频播放器。软件开发背景及意义欣赏美妙的音乐是我们每个人在学习工作之余都会做的事,面对市场上和网络上 各种花样繁多的播放器,他们不但用起来感到得心应手,而且各种功能操作非常方便。 我们都用过“千千静听”,“酷狗音乐盒”,“Windows Media player”等非常优秀的播 放器,但是在
14、其使用的过程中总有些瑕疵。并且这些公司没有开放它们的源代码。 我设计的这个“基于java的音乐播放器”除了能够播放一些常见的音频格式外更加易 于操作和使用。此软件具有一般播放器的常用功能,界面沿用了标准的Windows窗口,主窗口的功能有对要播放文件的各种控制,所播放曲目的名称,通过主窗口能有选择的播放单个文件,单次播放和循环播放目录表中的文件。程序的开发环境是JDK, 操作系统是 Windows XP,用到的主要技术为java语言,eclipse编辑软件。本次毕业设计的意义在于结合 Java语言提供的先进的思想和多样的媒体控制手1文档来源为:从网络收集整理,word版本可编辑文档来源为:从网
15、络收集整理,word版本可编辑.欢迎下载支持段,结合用户使用音乐播放器的习惯和对媒体播放器的要求,设计了一款界面清楚明了,操作简单实效,可以实现在播放列表中可以加载一个或者多个多媒体文件;自动连续播放多个多媒体文件;用户能随意改变播放顺序;在下次打开播放器时,能够自 动加载上次的播放列表;在播放列表的多媒体文件播放完后可以选择自动关闭播放器 或者循环播放等功能的媒体播放器。发展现状及趋势音乐播放器的设计是一门集计算机技术和数字多媒体技术于一体的综合设计。随着中国计算机技术、宽带网络技术的发展,越来越多的人开始重视多媒体播放器的发 展与应用。在当今信息社会以多媒体为特征的信息技术和信息产业的发展
16、及应用对人 类社会产生的影响和作用愈来愈明显, 愈来愈重要。而音乐作为多媒体中的一个重要 组成部分能改变信息的包装,实现知识信息数字化,为人们获得知识信息提供极大的 方便和无穷的乐趣。友善的人机界面、多种多样的多媒体教学软件、诱人的电子游艺 节目、身临其境的多媒体导购系统、五花八门的信息家电和高效方便的网上查询等等, 无不渗透着多媒体的作用,它引导人们进入了一个有声有色的世界。同时,多媒体的 发展和应用,极大地推动了各行各业的相互渗透和飞速发展,大大改变了人类社会的 工作环境和生活方式。可毫不夸张地说,多媒体产业的形成和发展,不仅引起了计算 机工业的一次革命,也正在深刻地影响人类社会发生巨大的
17、变革。多媒体技术的发展在很大程度上依靠于多媒体软件开发的水平0多媒体技术是当今信息技术领域发展最快、最活跃的技术,是新一代电子技术发 展和竞争的焦点。多媒体技术融计算机、声音、文本、图像、动画、视频和通信等多 种功能于一体,借助日益普及的高速信息网,可实现计算机的全球联网和信息资源共 享,因此被广泛应用在咨询服务、图书、教育、通信、军事、金融、医疗等诸多行业, 并正潜移默化地改变着我们生活的面貌。人类社会逐渐进入信息化时代,社会分工越来越细,人际交往越来越频繁,群体 性、交互性、分布性和协同性将成为人们生活方式和劳动方式的基本特征,其间大多数工作都需要群体的努力才能完成。但在现实生活中影响和阻
18、碍上述工作方式的因素 太多,如打电话时对方却不在。即使电话交流也只能通过声音,而很难看见一些重要 的图纸资料,要面对面的交流讨论,又需要费时的长途旅行和昂贵的差旅费用, 这种2文档来源为:从网络收集整理,word版本可编辑.文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持方式造成了效率低、费时长、开销大的缺点。今天,随着多媒体计算机技术和通信技 术的发展,两者相结合形成的多媒体通信和分布式多媒体信息系统较好地解决上述问 题。随着网络技术的不断发展和Internet的逐渐普及,人们对网络产品需求也不断增 长。如今流行的网络音乐播放器虽然很多,但都或多或少存在一些缺陷,比如:没有 记忆
19、的功能;下次播放的时候不能从上次离开的曲目开始;没有身份认证功能;不能有效的保护媒体播放器里面的歌曲专有性;功能组合与用户的习惯相违背;界面太复 杂以及操作太难等。随着人们对娱乐要求的提高,一款别致的、贴近用户操作习惯的 音乐播放器非常值得去研究和开发。第二章相关技术简介Java技术简介Java语言具有许多特点,当然也是它的优点,即简单性、分布性、高安全性、面向 对象、与结构的无关性、可移植性、多线程及动态性等等。简单性:Java语言是一种面向对象的语言,如果你对面向对象的编程的基本概念有了一定的了解,就可以比较快地学会Java语言编程。Java力图在功能齐备的基础上不增加所谓的超级特点,它毫
20、 不客气地取消了指针、运算符重载和多重继承的概念,以一种明晰的面向对象的方法帮助用户表达他们的想法。Java是一种简单的语言。Java取消了其它的许多编程语言中十分繁琐的和难以 理解的内容,例如C/C+中的指针,C +中类的多重继承等。Java语言在外观上让 大多数程序员都感到很熟悉,这样程序员不需要经过长时间训练就能够学会使用这种 新型的程序开发工具。Java要求的基本解释器约为40KB,若加上基本的程序库,约 为215KB。由于Java程序很小,因此在小型机上 Java程序也能够很好地执行。Java是一种面向对象的语言。这里的“对象”是指应用程序的数据及其操作方法。 Java程序的设计思想
21、不同于C语言基于过程的程序设计思想。 设计面向对象的程序需 要将编程重点放在资料和接口上。Java是一种分布式的语言。Java有一个很周全的程序库,且很容易与 HTTP和3文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持TCP/IP通信协议相配合。Java应用程序能在网络上开启并连结使用对象,就如同透 过URL链接使用一个本地文件系统。利用Java来开发分布式的网络程序是Java的一 个重要应用。JMF媒体框架技术JMF意为Java媒体框架(JMF)。该核心框架支持不同媒体(如:音频输出和视 频输出)问的时钟同步。它是一个标准的扩展框架
22、,允许用户制作纯音频流和视频流。JMF实际上是Java的一个类包。JMF ,从而扩展了 Java平台的功能。这些功能 包括:媒体捕获、压缩、流转、回放,以及对各种主要媒体形式和编码的支持,如M-JPEG、H.263、MP3、RTP/RTSP秋时传送协议和实时流转协议 卜Macromedias Flash IBM 的 HotMedia 和 Beatniks 的 Rich Media Format (RMF)等。JMF ,如 Quicktime Microsofts AVI和MPEG-1等。止匕外,JMF ,可使开发人员灵活采用各种媒体回放、 捕获组件,或采用他们自己的定制的内插组件。Sun以四种
23、不同的专用版本提供JMF ,满足专业开发人员的各类需求,第一个 是一个轻便型版本,它完全采用 Java语言编写,适用于任何Java兼容系统。止匕外, 开发人员还可选 择分别适用于Solaris、Windows或Linux等操作系统的性能最优化 软件包,以提高性能和能力。JMF Media系列软件的一部分。Java Media系列软件包括Java 3D Java 2D Java Sound ft Java Advanced Imaging 等 API。采用各种 Java Media API,软件开发商人员 就能容易、快速地为他们已有的各种应用程序和客户端Java小程序增添丰富的媒体功能,如流式视
24、频、3D图像和影像处理等。就是 说,各种Java Media API发挥了 Java 平台的固有优势,将”编写一次,到处运行”的能力扩展到了图像、影像和数字媒体等 各种应用领域,从而大大缩减了开发时间和降低了开发成本。JDK技术Java编译器将Java源代码文件编译成可执行的Java字节码。Java源代码文件 的扩展名为.java, Java编译器把这种扩展名的文件编译成扩展名为.class的文件。源 文件中的每个类在编译后都将产生一个 class文件,这意味一个Java源代码文件可能4文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持编
25、译生成多个class文件。Java解释器对编译生成的字节码格式的可执行程序的运行提供支持,它是运行非图形Java程序的命令行工具。它是Java Applet的简单测试工具,可使用它来测试 Java Applet程序,而不需要 WWW浏览器的支持。JDK(Java Development Kt)是 Sun Microsystems针对 Java程序员开发的产品。自 从Java推出以来,JDK已经成为使用最广泛的 Java SDK (Software development kit)。JDK 是整个 Java 的核心,包括了 Java 运行环境(Java Runtime Environment,一
26、 堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某 个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布 的JDK,除了 Sun之外,还有很多公司和组织都开发了自己的JDK,例如旧M公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中 旧M的JDK 包含的JVM (Java Virtual Machine)运行效率要比 Sun JDK包含的JVM高出许多。 而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管 怎么说,我们还是需要先把Sun JDK掌握
27、好。从SUN的JDK5.0开始提供了泛型等非常实用的功能,其版本信息也不再延续 以前的1,2, 1,3, 1.4,而是变成了 5.0,6.0 了。从6.0开始,具运行效率得到了非常大 的提高,尤其是在桌面应用方面。JDK本身使用了 Java语言编写,在我们下载的安 装包里,有一个src.zip,里面就是JDK的源代码。第三章系统分析功能需求根据项目的目标,我们可获得项目系统的基本需求,以下从不同的角度来描述系 统的需求,并且使用用例图来描述,系统的功能需求,我们分成以下几部分来概括, 即播放器的基本控制需要。在播放器正在运行时,用户选择一首歌曲后单击“播放”按钮,播放器将播放选 中的播放列表中
28、的音乐,并同时显示当前进度;当歌曲未暂停或停止时,用户单击“暂 停”按钮,播放器将进入暂停状态;播放器正在播放或暂停时,用户单击“停止”按5文档来源为:从网络收集整理.word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持钮,播放器将停止播放或暂停时,用户点击“上一首”或者“下一首”按钮,播放器将播放上一首或下一首歌曲。从时序图3-2中可以看出播放器运行原理和调用过程。播放列表播放界面播放方法选播播择 播放 歌放 方播放界面调用方法放曲4法歌. 一曲返回播放图3-2运行及其它需求分析硬件条件:赛扬CPU、1G内存、10G硬盘以上的PC机。软件条件:Windows XP、
29、eclipse 3.7.2、本软件对其它软件几乎没有依赖性,程序健壮性较好有较好的可维护性、可靠性、 可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可测试性等含义。可靠性通常包括正确性和健壮性。 开发过程中,在各种矛盾的目标之间作权衡,并在 一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。可行性分析经济及技术可行性6文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设 运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益
30、进行估计。由于本系统是作为毕业设计由我自己开发的,在经济上的投入甚微,系统建成之后将为今 后播放音乐提供很大的方便,估算新系统的开发费用和今后的运行、维护费用,估计 新系统将获得的效益,并将费用与效益进行比较,看是否有利。开发、运行和维护费用主要包括:购买和安装设备的费用:计算机硬件、系统软 件、电源、空调等;软件开发费用:若由实习单位的技术人员开发,则该项费用可以 计入下面的人员费用一项;人员费用:系统开发人员、操作人员和维护人员的工资、 培训费用等;消耗品费用:系统开发所用材料、系统正常运行所用消耗品,例如水、 电费、打印纸、软盘、色带等开支。结合该毕业设计的整个过程所有开支都不大,所 以
31、经济上是可行的。技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。该音乐播放器用的是 java语言开发的,调试相对简单,当前的 计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面: 用的是eclipse它的速度快、可靠性能高、价格低,完全能满足系统的需求。运行及法律可行性对新软件运行后给现行系统带来的影响 (包括组织机构、管理方式、工作环境等) 和后果进行估计和评价。同时还应考虑现有管理人员的培训、 补充,分析在给定时间 里能否完成预定的系统开发任务等。 运行可行性是对组织结构的影响,现有人员和 机构和环境对系统的适应性及人员培训补充
32、计划的可行性。 当前我国信息化技术已经 相当普及,各类操作人员水平都有相当的高度, 所以在运行上是可行性的。从时间上 看,时间上是有点紧,但通过一个多月的努力基本功能现在已经基本实现。在法律可 行性上从以下几点考虑:所有技术资料都为合法。 开发过程中不存在知识产权问题。未抄袭任何已存在的课程信息管理系统,不存在侵犯版权问题。 开发过程中未涉及任何法律责任。综上所述,本系统的开发从技术上、从经济上、从法律上都是完全可靠的。7文档来源为:从网络收集整理,word版本可编辑.文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持第四章软件结构及界面设计软件结构设计本软件不仅要求功能完善,而且还
33、要界面友好,因此,对于一个成功的软件设计, 功能模块的设计是关键。在需求分析阶段,搞清楚了软件做什么”的问题,形成了目标软件的逻辑模型。现在我们所要做的就是要把软件做什么”的逻辑模型变换为怎么做”的物理模型,即着手实现软件的需求。我们需要描述的是系统的总的体系结构。软件的设计中最重要的就是软件的模块化。 模块化是指解决一个复杂问题时自顶 向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有 的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性, 但模块的划分不能是任意的,应尽量保持其独立性。
34、也就是说,每个模块只完成系统 要求的独立子功能,并且与其他模块的联系最少且接口简单, 即尽量做到高内聚低耦 合,提高模块的独立性,为设计高质量的软件结构奠定基础。8文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持主界面添加?播放列表Jit播放?播放音乐程序结束L图4-1音乐播放器系统流程图界面功能模块设计主界面功能如图9文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持图 4.2.1音乐播放器的界面有“文件”、“播放”、2个主菜单,其中“文件”菜单包含“打 开文件“、“添加音乐文件
35、夹”“退出系统”三个菜单项,“播放”菜单里包含“播放/ 暂停”“停止”,“音乐魔方,“播放模式”,“播放背景”。菜单项如图4-2所示。菜单 主要功能模块如图4.2.210文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持菜单文件播放列表菜单添 加 音 乐 文 件播 放/ 暂停播 放/ 暂停11文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持列表菜单*删除_T清空列表添加音乐t添加音乐图 4.2.2下图是播放器主界面如图3.4:图3.4第五章播放器详细设计播放器采用JAVA为开发语言
36、,下面详细介绍了系统各个模块与功能的实现5.1。文件菜单详细设计文件菜单只要包括:添加音乐文件,添加音乐文件夹,退出功能:如图图5.1/*打开音乐文件*/public void openMusicFile() int selectState = 0;File chooserFile = null;JFileChooser chooser = new JFileChooser();12文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持MP3FileFilter mp3FileFilter = new MP3FileFilter();WAVF
37、ileFilter wavFileFilter = new WA VFileFilter();chooser.setCurrentDirectory(new File(.);chooser.setDialogTitle(选择音乐文件);chooser.setApproveButtonText(确定”);chooser.setApproveButtonToolTipText(选择音乐文件);chooser.addChoosableFileFilter(wavFileFilter);chooser.addChoosableFileFilter(mp3FileFilter);chooser.setF
38、ileSelectionMode(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) So
39、ngInfo newSong = new SongInfo(chooserFile.toString();RightPanel.getInstance().addSongFiletoList(newSong);/监听事件,通过判断语句判断是否点击了添加音乐文件的菜单,然后调用 openMusicFile();方法public void actionPerformed(ActionEvent e) String action = e.getActionCommand();if (添加音乐文件.equals(action) mini.openMusicFile();5.1.2添加音乐文件夹的功能实
40、现13文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持*打开音乐文件夹*/public void openMusicFolder() int selectState = 0;File chooserFolder = null;JFileChooser chooser = new JFileChooser();chooser.setCurrentDirectory(new File(.);chooser.setDialogTitle(选择音乐文件夹);chooser.setApproveButtonText(确定”);chooser.se
41、tApproveButtonToolTipText(选择音乐文件夹);chooser.setFileSelectionMode(JFileChooser.DIRECTQRIES_QNLY);/K选择文件夹selectState = chooser.showQpenDialog(this);if (selectState = JFileChooser.APPRQVE_QPTIQN) chooserFolder = chooser.getSelectedFile();String songPath = chooserFolder.list();int length = songPath.lengt
42、h;for (int i = 0; i length; i+) if (songPathi.toLowerCase().endsWith(H.mp3)| songPathi.toLowerCase().endsWith(.wav) SongInfo newSong = new SongInfo(chooserFolder +File.separator + songPathi);RightPanel.getInstance().addSongFiletoList(newSong);)/判断是否点击了添加音乐文件夹,成立就调用openMusicFolder的方法14文档来源为:从网络收集整理,w
43、ord版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持public void actionPerformed(ActionEvent e) String action = e.getActionCommand();if (添加音乐文件.equals(action) mini.openMusicFile(); else if (添加音乐文件夹.equals(action) mini.openMusicFolder();5.1.3退出功能实现/在点击时间监听中判断是否点击的退出菜单,然后判断歌曲是否关闭,没有关 闭则先关闭歌曲再销毁界面退出程序:一|public void a
44、ctionPerformed(ActionEvent e) String action = e.getActionCommand();if (添加音乐文件.equals(action) mini.openMusicFile(); else if (添加音乐文件夹.equals(action) mini.openMusicFolder(); else if (退 出.equals(action) if (player != null) player.close(); player = null;mini.dispose();Config.getInstance().saveConfig();Ri
45、ghtPanel.getInstance().savePlayList();System.exit(O);5.2播放菜单详细设计15文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持播放菜单主要包括:播放/暂停,停止,音乐魔方,播放模式,歌词背景功能: 如图5.2图5.2播放/暂停功能实现/*开始播放音乐7public static void start() if (player != null & !noCanPlaySong() player.getGainControl().setLevel(soundSlider.getValue
46、() / 100.0F);setSoundState(getSoundState();player.start();/进度条更新SliderUpdateThread.initThread();SliderUpdateThread.getThread().start();SliderUpdateThread.resume();player.addControllerListener(SongControlListener.getInstance();playerState = PlayerState.PLAY;psButton.setIcon(new IconTool(images/pause.
47、png).getIcon();psButton.setIconPath(images/pause.png);songNameLabel.setText(currentSong.getSongName();int index = defaultSongInfo.indexOf(currentSong);defaultSongList.setSelectedIndex(index);LRCParse.getInstance().LoadLRC();LRCLabel.getInstance().refresh();PlayerInfoLabel.getInstance().refresh();)16
48、文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持)/*暂停音乐函数*/public static void pause() if (player != null) player.stop();playerState = PlayerState.PAUSE;psButton.setIcon(new IconTool(images/play.png).getIcon();psButton.setIconPath(images/play.png);PlayerInfoLabel.getInstance().refresh();)/在时间监听中
49、判断是否点击播放/暂停按钮,并调用相应方法播放,如果当前状 态为播放就暂停音乐,如果状态为暂停或停止就播放音乐。public void actionPerformed(ActionEvent e) String action = e.getActionCommand();if (添加音乐文件.equals(action) mini.openMusicFile(); else if (添加音乐文件夹.equals(action) mini.openMusicFolder(); else if (退 出.equals(action) if (player != null) player.close
50、(); player = null;mini.dispose();Config.getInstance().saveConfig();RightPanel.getInstance().savePlayList();17文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持System.exit(0); else if (播放/暂停”.equals(action) & MusicPlayer.getPlayerState()= PlayerState.PLAY) MusicPlayer.pause(); else if (播放/暂停”.equa
51、ls(action) & MusicPlayer.getPlayerState()= PlayerState.PAUSE) MusicPlayer.start(); else if (播放/暂停”.equals(action) & MusicPlayer.getPlayerState()= PlayerState.UNREALIZED) MusicPlayer.initPlayer(null);MusicPlayer.start();5.2.2停止功能实现*停止播放*/public static void stop() if (player != null) playerState = Pla
52、yerState.UNREALIZED;psButton.setIcon(new IconTool(images/play.png).getIcon();psButton.setIconPath(images/play.png);SliderUpdateThread.pause();timeSlider.setValue(0);timeLabel.setText(00:00| 十FormatUtils.formatTime(player.getDuration().getSeconds();player.close();PlayerInfoLabel.getInstance().refresh
53、();18文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持)/判断是否点击停止菜单,并调用 stop ();方法 public void actionPerformed(ActionEvent e) String action = e.getActionCommand();if (添加音乐文件.equals(action) mini.openMusicFile();)else if (停 止 .equals(action) MusicPlayer.stop();)5.2.3音乐魔方实现音乐魔方只要是主界面的一个迷你模式,能够实现播放/暂
54、停,快进/快退,退出功能如图:图5.2.3/*将Image图像转换为Shape图形 *param imgparam isFiltratereturn Image图像的Shape图形表示author Hexen*/public Shape getImageShape(Image img) ArrayList x = new ArrayList();ArrayList y = new ArrayList();int width = img.getWidth(null);/ 图像宽度19文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持int
55、height = img.getHeight(null);/ 图像高度/筛选像素/首先获取图像所有的像素信息PixelGrabber pgr = new PixelGrabber(img, 0, 0, -1, -1, true);try (pgr.grabPixels(); catch (InterruptedException ex) ex.getStackTrace();int pixels = (int) pgr.getPixels();/循环像素for (int i = 0; i 0 ? i % width - 1 : 0);y.add(i % width = 0 ? (i = 0 ?
56、 0 : i / width - 1) : i / width);/建立图像矩阵并初始化(0为透明,1为不透明)int matrix = new intheightwidth;for (int i = 0; i height; i+) for (int j = 0; j width; j+) matrixij = 0;/导入坐标ArrayList中的不透明坐标信息20文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持for (int c = 0; c x.size(); c+) matrixy.get(c)x.get(c) = 1;)/*
57、逐一水平扫描”图像矩阵的每一行,将不透明的像素生成为Rectangle,再将每一行的Rectangle通过Area类的rec对象进行合并,*最后形成一个完整的Shape图形*/Area rec = new Area();int temp = 0;for (int i = 0; i height; i+) for (int j = 0; j 24) & 0 xff;)Overridepublic void paint(Graphics g) / super.paint(g); /A1行止匕行会导致鼠标进入窗体时窗口闪烁g.drawImage(img, 0, 0, null);bf.repaint
58、();kj.repaint();kt.repaint();zt.repaint();fh.repaint();tj.repaint();22文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持/ public static void main(String args) repanl sample = new repanl();/sample.setVisible(true);/5.2.4播放模式功能实现/*随机播放*/public static void randomSong() int randNumber = (int) (Math.r
59、andom() * (defaultSongInfo.size() - 1);initPlayer(defaultSongInfo.elementAt(randNumber);start();defaultSongList.setSelectedlndex(randNumber);5.2.5歌词背景功能实现歌词背景菜单包含风车,倾听,蒲公英,许愿,无背景,5个子菜单。如图图:5.2.5/*加载指定歌词背景的属性param file是属性文件 */private void loadProperties(String path) try pp.load(FileUtils.getInputStre
60、am(path);/ 读取属性文件 catch (FileNotFoundException e) 23文档来源为:从网络收集整理,word版本可编辑文档来源为:从网络收集整理,word版本可编辑.欢迎下载支持FileNotFound); catch (lOException e) lOException);/*设置歌词背景的属性param i是属性的下标 */public void setProperties(int i) if (i = 0 & i ComVariable.TOTAL_LRC_PROPERTIES) String path = minimusic/syj/propertie
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版北京个人房产买卖车位使用权转让合同2篇
- 2024年度二手车交易服务平台三方合作协议5篇
- 科研办公楼项目建设方案
- 2024年度牛乳制品加工合作合同范本2篇
- 高标准农田建设项目投标书
- 2024版学校停车场建设施工合同2篇
- 2024年特殊情形离婚财产放弃合同
- 2024年度文化旅游景区承包经营开发合同3篇
- 内蒙古交通职业技术学院《材料物化实验(1)》2023-2024学年第一学期期末试卷
- 2024年度猫咪领养活动合作合同样本3篇
- 个人理财(西安欧亚学院)智慧树知到期末考试答案2024年
- pc(装配式)结构施工监理实施细则
- 医院内审制度
- 押运人员安全培训课件
- 给小学生科普人工智能
- 2024年南京信息职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 2024年汽配行业分析报告
- 【世界睡眠日】3.21主题班会(3月21日)良好睡眠健康作息-课件
- 2024年房地产经纪协理考试题库附参考答案(综合题)
- c型钢加工工艺
- 中药在护理中的应用
评论
0/150
提交评论