您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 基于java的音乐播放器的设计
基于java的音乐播放器的设计摘要:在信息,技术高速发展的今天,多媒体技术也越来越受到人们的重视。文章对目前使用较多的音乐播放器作出较详细的比较。通过阅读多张文献,分析了一些音乐播放器的功能并考虑了怎样能实现支持更多格式的音乐文件,怎样能满足使用者对播放器的需求。本文主要介绍了一个基于JavaApplet来实现的音乐播放器的设计。并对系统开发中涉及到的关键技术作了探讨,简要分析介绍了Java技术和Applet的工作原理,最后说明系统需要实现的功能。关键词:java;Applet;音乐播放器;前言近年来,听音乐已成为人们生活的一部分,与此同时,音乐播放器以其平易近人的价格也日趋普及,这大大丰富了业余生活也缓解了工作压力,但尚有诸多不足之处有待改进日常生活中,我们在听音时,常感手动操作甚是麻烦且想寻找某个音频文件须从头到尾逐个查看,这样费时费力很是不便。音乐播放器的实现方法,采用口述音乐文件名的方式即可播放指定歌曲文件,避免了繁琐的查找,亦使其更加人性化,实现了播放器的全自动语音控制。我将来要采用javaApplet的多媒体技术,设计出一个基于javaApplet的音乐播放器。现在电脑上的音乐播放器百花齐放,以Winamp,Foobar2000,千千静听,酷狗和酷我音乐盒最流行。播放器最重要的参数当属支持的格式了,即使只图个响,也需要有丰富的格式作为后盾。在此方面,千千静听支持多种音频格式,除了常见的MP3,WMA等,也支持APE,FLAC等无损压缩格式,它一共支持三十多种音频格式,是一个比较全能的播放器。Winamp也支持非常多的格式,但对APE格式的支持需要安装对应插件;除音频格式外,Winamp还支持一些常见的视频格式,这个功能能为用户带来一些方便。Foobar2000支持的格式数量也差不多,但是对APE的支持仍然需要安装插件。不过Foobar2000有一个特色功能,它支持直接读取压缩包里的音乐文件,从电骡上下载的APE完整碟通常都是打包的,如果用Foobar2000的这个功能就可以不解压直接听歌了。相比之下,酷我音乐盒支持的格式就比较单一了,无论是网上搜索还是本地播放歌曲,都仅支持MP3和WMA种格式。酷狗的表现则稍微好点,除了支持MP3和WMA之外,还支持APE和FLAC格式。而酷我音乐盒,则支持在线MV视频的播放。在本文中我利用java语言设计的音乐播放器的功能跟千千静听,酷狗和酷我音乐盒,Winamp,Foobar2000的功能差不多,不过利用java设计的音乐播放器支持的音频文件格式比它们丰富一点。如:WAP,AIFF,MIDI,AU,RMF等跨平台功能比较强。1Java技术Java技术已经成为当今Internet应用开发的核心与主流技术。这一方面是因为java语言具有面向对象,可移植性,强壮性与安全性等优良特征,另一方面也由于java技术对各个层次的分布式应用(包括电器设备的嵌入式计算,桌面计算与企业级计算)都提供了全面系统的方法与技术。因此,目前java已经从单纯的程序设计语言发展成为支撑Internet计算的大技术体系,进入了发展与应用的高级阶段。1.1java语言对于都数程序设计语言,其程序运行要么采用编译执行,要么采用解释执行的方式。而java语言的特殊之处在于,程序运行既要经过编译又要进行解释,如图1-1所示。首先,java程序由编译器进行编译,产生了一种中间代码,称为java字节码(javabytecodes)。字节码是java虚拟机的代码,是与平台无关的中性代码,因此不能在各种计算机平台上直接运行,必须在JVM上运行。Java解释器是JVM的实现,它把字节码转换为底层平台的机器码,使Java程序最终得以运行。无论是Application还是嵌入式在浏览器中的Applet,都需要通过解释器才能运行。图1-1Java语言的运行1.2Java的特征Java是一种”简单”(simple),面向对象(objectoriented),分布式(distributed),解释性(interpreted),健壮(orbust),安全(secure),体系结构中立(architectureneutral),可移植性(portable),高性能(highperformance),多线程(multithreaded),和动态(dynamic)“的编程语言。1)简单性:Java语言语法和语义都比较单纯,,容易学习和使用。2)面向对象:作为一种面向对象的编程语言,Java不仅最为“纯洁”,同时,它对面向对象方法的支持最为全面。另外,Java通过抽象类和接口(interface)支持面向的多态性要求,既一个对外接口,多种内部实现。3)分布式特征:Java实现两种层次上的分布。(1)数据分布支持:通过java的URL类,Java程序可以访问网络撒谎那个的各类信息资源。访问方式完全类似于本地MyProgram.java____________________________________________________________________编译器(Compiler)解释器(Interpreter)MyProgram.class_________________________________________MyProgram文件系统。(2)操作分布支持:java通过嵌在(小应用程序)将计算从服务器分布至客户机。Applet由浏览器在客户端执行,从而避免了网络拥挤,提高了系统效率。4)java的解释性:运行Java程序需要解释器。程序被编译为成为字节代码的Java虚拟机代码。字节代码与机器无关,可以在任何有Java解释器的机器上运行。5)健壮性:Java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。6)安全性:在发分布式环境中,安全性是一个十分重要的问题。Java在语言和运行环境中引入了多级安全措施,其采用的主要安全机制有:(1)内存分配及布局由Java运行系统规定。(2)运行系统执行基于数字签名技术的代码认证,字节码验证与代码访问权限控制的。7)体系结构中立:Java语言的设计不是针对某种具体平台结构的。8)可移植性:Java是迄今为止对可移植性支持最佳的编程语言。Java的最大特点是“一次编程,处处运行”。9)高性能:Java语言虽然采取字节码解释运行方式,但由于字节码与机器码十分接近,使得字节码到机器码的转换十分快捷。10)多线性:线程是比进程更小,更为经济的并发执行单位,它与进程的主要差异在于它不拥有单独的资源,而是与其他线程共享所属进程的资源。11)动态性:Java的动态性是其面向对象设计的延伸。2JavaApplet概念Applet(小应用程序)是Java与Web相结合而引入的一种重要的Java应用形式,它不仅使Web页具有动画,声音,图像和其他特殊效果,更重要的是可以使Web页能够与用户动态进行交互,接收用户的输入,然后根据用户的输入作出不同的反应。它是能够嵌入到HTML页面中,并能够在浏览器中运行的Java类。Applet自身不能运行,必须嵌入在其他应用程序(例如Web浏览器或JavaAppletviewer)中运行。Applet类提供了从制定的URL获取图像和声音的方法,使Applet可以很方便地实现多媒体功能。当图像数据通过网络下载时,由于受网络带宽等因素的限制,用户在浏览器中看到的一般是渐渐增长的图像显示过程。获取指定URL上的声音数据,返回一个类型为AudioClip的对象,通过该对象可以实现声音演播。2.1Applet类生成Applet要创建Applet类的子类,一个Applet的运行为框架由Applet类来决定的。Applet类提供了从指定的URL获取图像和声音的方法,使Applet可以很方便地实现多媒体功能的。要编写Applet小应用程序,就必须继承Applet类,并覆盖其中必要的方法。Applet类为applet提供了基本的框架结构是applet和其运行环境之间的标准接口。Web浏览器能够自动调用下列方法来控制applet小应用程序的生成和运行:○1init方法○2Start方法○3stop方法○4destroy方法3设计本系统要用到的Java关键技术3.1在Applet中播放声音的方法和步骤在Java.Applet包中的Applet类和AudioClip接口提供了播放声音的基本支持。以前计算机存储声音文件的格式有许多,目前Java只支持一种声音文件格式有.au,.mid,.wav等。对于其他格式的文件,可以用相应地工具软件将它们转换为.au或.mid等Java支持的文件。在Applet中播放声音文件有两种方法:(1)在Java的API中,Applet类提供了一个方法play(),它可以直接根据URL地址来播放声音。这个方法指定如下:Publicvoidplay(URLurl);Publicvoidplay(URLurl,stringsoundFile);在第一种方法的定义中,参数url是保存声音文件的绝对URL地址,即统一资源定位,它指定Web网上的一个声音文件;在第二种方法定义中,参数URL是保存声音文件的基地址,而参数soundFile是声音文件的文件名。如果声音文件与Applet的HTML文件在相同的目录下,则可以通过使用getCodeBase()方法来获得该声音文件的基地址。如果Applet本身的URL地址为“http//”,则语句:Play(gatCodeBase(),“space.au”);等同于语句:Play(“http//”,“space.au”);在程序编写过程中,若使用第一种方法定义,则将程序由一个服务器转移到另一服务器上或从一个目录转移到另一个目录下时,必须改变源代码中的URL地址:若使用第二种方法定义,即使用getCodeBase()方法来定位资源文件,则将程序由一个服务器转移到另一个服务器或从一个目录转移到另一个目录下时,不必改变源代码中的URL地址,而只需将声音文件与播放他的Java文件放在同一目录下即可。Play()方法只能进行简单的播放,只能一次敬爱那个声音文件播放完,没有停止和连续播放的功能,所以,一般编写播放声音的程序时不采用此方法。(2)利用Java中的AudioClip类对象播放声音文件。AudioClip类提供了两种获取声音数据的方法,定义如下:AudioClipgetAudioClip(URLurl);AudioClipgetAudioClip(URLurl,StringsoundFile);它们的参数含义与以上相同。使用时可按如下步骤。○1)声明一个AudioClip类的对象,如:AudioClipaudio;○2)使用getAudioClip()方法为AudioClip类的对象获得句柄,如:aud=getAudioClip(getCodeBase(),“space.au”);或一次完成,如:AudioClipaud=getAudioClip(getCodeBase(),“space.au”);或:AudioClipaud=getAudioClip(“HTTP//”,“space.au”使用这种方法创建声音播放程序文件的一般步骤如下:○1创建一个AudioClip对象。○2装入声音文件到AudioClip对象。○3一次播放或者不停地循环播放声音。○4停止播放。Java.applet.AudioClip类提供了3个方法实现对声音文件播放的控制,它们分别是play(),loop()和stop()。在这个设计过程中使用了java.applet.AudioClip类中的play()方法播放一个载入的声音文件;使用loop()方法循环地播放该声音文件,并且使用stop()方法来停止播放这个声音文件。方法star()和stop()是Apple
本文标题:基于java的音乐播放器的设计
链接地址:https://www.777doc.com/doc-2570206 .html