音乐播放器系统设计毕业论文文档格式.docx
《音乐播放器系统设计毕业论文文档格式.docx》由会员分享,可在线阅读,更多相关《音乐播放器系统设计毕业论文文档格式.docx(41页珍藏版)》请在冰点文库上搜索。
![音乐播放器系统设计毕业论文文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/1/75e1fbe0-9e8c-4f03-b24d-4188c72ea460/75e1fbe0-9e8c-4f03-b24d-4188c72ea4601.gif)
多媒体技术的发展在很大程度上依靠于多媒体软件开发的水平。
多媒体技术是当今信息技术领域发展最快、最活跃的技术,是新一代电子技术发展和竞争的焦点。
多媒体技术融计算机、声音、文本、图像、动画、视频和通信等多种功能于一体,借助日益普及的高速信息网,可实现计算机的全球联网和信息资源共享,因此被广泛应用在咨询服务、图书、教育、通信、军事、金融、医疗等诸多行业,并正潜移默化地改变着我们生活的面貌。
人类社会逐渐进入信息化时代,社会分工越来越细,人际交往越来越频繁,群体性、交互性、分布性和协同性将成为人们生活方式和劳动方式的基本特征,其间大多数工作都需要群体的努力才能完成。
但在现实生活中影响和阻碍上述工作方式的因素太多,如打电话时对方却不在。
即使电话交流也只能通过声音,而很难看见一些重要的图纸资料,要面对面的交流讨论,又需要费时的长途旅行和昂贵的差旅费用,这种方式造成了效率低、费时长、开销大的缺点。
今天,随着多媒体计算机技术和通信技术的发展,两者相结合形成的多媒体通信和分布式多媒体信息系统较好地解决上述问题。
随着网络技术的不断发展和Internet的逐渐普及,人们对网络产品需求也不断增长。
如今流行的网络音乐播放器虽然很多,但都或多或少存在一些缺陷,比如:
没有记忆的功能;
下次播放的时候不能从上次离开的曲目开始;
没有身份认证功能;
不能有效的保护媒体播放器里面的歌曲专有性;
功能组合与用户的习惯相违背;
界面太复杂以及操作太难等。
随着人们对娱乐要求的提高,一款别致的、贴近用户操作习惯的音乐播放器非常值得去研究和开发。
第二章
相关技术简介
2.1
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程序的命令行工具。
它是Java
Applet的简单测试工具,可使用它来测试Java
Applet程序,而不需要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.1功能需求
3.1.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.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.1
5.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(){
FilechooserFolder=null;
选择音乐文件夹"
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
//只选择文件夹
chooserFolder=chooser.getSelectedFile();
StringsongPath[]=chooserFolder.list();
intlength=songPath.length;
for(inti=0;
i<
length;
i++){
if(songPath[i].toLowerCase().endsWith("
||songPath[i].toLowerCase().endsWith("
SongInfonewSong=newSongInfo(chooserFolder+File.separator+songPath[i]);
//判断是否点击了添加音乐文件夹,成立就调用openMusicFolder的方法
}elseif("
添加音乐文件夹"
mini.openMusicFolder();
5.1.3退出功能实现
//在点击时间监听中判断是否点击的退出菜单,然后判断歌曲是否关闭,没有关闭则先关闭歌曲再销毁界面退出程序。
publicvoidactionPerformed(ActionEvente){
退出"
if(player!
=null){
player.close();
player=null;
mini.dispose();
Config.getInstance().saveConfig();
RightPanel.getInstance().savePlayList();
System.exit(0);
5.2播放菜单详细设计
播放菜单主要包括:
播放/暂停,停止,音乐魔方,播放模式,歌词背景功能:
如图5.2
图5.2
5.2.1播放/暂停功能实现
/**
*开始播放音乐
publicstaticvoidstart(){
=null&
&
!
noCanPlaySong()){
player.getGainControl().setLevel(soundSlider.getValue()/100.0F);
setSoundState(getSoundState());
playe