基于java的音乐播放器的设计(源代码+实验报告)_第1页
基于java的音乐播放器的设计(源代码+实验报告)_第2页
基于java的音乐播放器的设计(源代码+实验报告)_第3页
基于java的音乐播放器的设计(源代码+实验报告)_第4页
基于java的音乐播放器的设计(源代码+实验报告)_第5页
已阅读5页,还剩104页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1主类MUSICPLAYER类IMPORTJAVAUTILIMPORTJAVAXSWINGJSLIDERIMPORTJAVAAWTBORDERLAYOUTIMPORTJAVAAWTFLOWLAYOUTIMPORTJAVAAWTPOINTIMPORTJAVAAWTEVENTACTIONEVENTIMPORTJAVAAWTEVENTACTIONLISTENERIMPORTJAVAAWTEVENTMOUSEADAPTERIMPORTJAVAAWTEVENTMOUSEEVENTIMPORTJAVAIOBUFFEREDOUTPUTSTREAMIMPORTJAVAIOFILEIMPORTJAVAIOFILEINPUTSTREAMIMPORTJAVAIOFILENOTFOUNDEXCEPTIONIMPORTJAVAIOFILEOUTPUTSTREAMIMPORTJAVAIOIOEXCEPTIONIMPORTJAVAIOOBJECTINPUTSTREAMIMPORTJAVAIOOBJECTOUTPUTSTREAMIMPORTJAVAIOSERIALIZABLEIMPORTJAVAXMEDIACONTROLLEREVENTIMPORTJAVAXMEDIACONTROLLERLISTENERIMPORTJAVAXMEDIAENDOFMEDIAEVENTIMPORTJAVAXMEDIAMANAGERIMPORTJAVAXMEDIAMEDIALOCATORIMPORTJAVAXMEDIANOPLAYEREXCEPTIONIMPORTJAVAXMEDIAPLAYERIMPORTJAVAXMEDIAPREFETCHCOMPLETEEVENTIMPORTJAVAXMEDIATIMEIMPORTJAVAXSWINGBUTTONGROUPIMPORTJAVAXSWINGDEFAULTLISTMODELIMPORTJAVAXSWINGIMAGEICONIMPORTJAVAXSWINGJBUTTONIMPORTJAVAXSWINGJFILECHOOSERIMPORTJAVAXSWINGJFRAMEIMPORTJAVAXSWINGJLISTIMPORTJAVAXSWINGJMENUIMPORTJAVAXSWINGJMENUBARIMPORTJAVAXSWINGJMENUITEMIMPORTJAVAXSWINGJOPTIONPANEIMPORTJAVAXSWINGJPANELIMPORTJAVAXSWINGJRADIOBUTTONMENUITEMIMPORTJAVAXSWINGJSCROLLBARIMPORTJAVAXSWINGJSCROLLPANEIMPORTJAVAXSWINGFILECHOOSERFILENAMEEXTENSIONFILTER2PUBLICCLASSMUSICPLAYERIMPLEMENTSACTIONLISTENER,SERIALIZABLE,CONTROLLERLISTENERPRIVATESTATICFINALLONGSERIALVERSIONUID1LPRIVATEJFRAMEFRAMENULLPRIVATEJPANELCONTROLPANELNULLPRIVATEJBUTTONBTNPLAYNULLPRIVATEJBUTTONBTNPRENULLPRIVATEJBUTTONBTNNEXTNULLPRIVATEJSCROLLPANELISTPANENULLPRIVATEJLISTLISTNULLPRIVATEDEFAULTLISTMODELLISTMODELNULLPRIVATEJMENUBARMENUBARNULLPRIVATEJMENUMENUFILENULL,MENUABOUTNULL,MENUMODENULLPRIVATEJMENUITEMITEMOPEN,ITEMOPENS,ITEMEXIT,ITEMABOUTPRIVATEJRADIOBUTTONMENUITEMITEMSINGLE,ITEMSEQUENCE,ITEMRANDOMPRIVATELISTITEMCURRENTITEMNULLPRIVATESTATICPLAYERPLAYERNULLPRIVATEBOOLEANISPAUSEFALSEPRIVATEINTMODEPRIVATEINTCURRENTINDEXPRIVATEIMAGEICONICONPLAYNEWIMAGEICON“D1JPG“PRIVATEIMAGEICONICONPRENEWIMAGEICON“D3JPG“PRIVATEIMAGEICONICONNEXTNEWIMAGEICON“D2JPG“PRIVATEIMAGEICONICONPAUSENEWIMAGEICON“D4JPG“PUBLICSTATICVOIDMAINSTRINGARGSNEWMUSICPLAYERPUBLICMUSICPLAYERINITPUBLICVOIDINITFRAMENEWJFRAMEFRAMESETTITLE“音乐播放器“FRAMESETSIZE400,300FRAMESETRESIZABLEFALSEFRAMESETLOCATIONRELATIVETONULLFRAMESETDEFAULTCLOSEOPERATIONJFRAMEEXIT_ON_CLOSEMENUBARNEWJMENUBARMENUFILENEWJMENU“文件“MENUABOUTNEWJMENU“关于“3MENUMODENEWJMENU“播放模式“ITEMOPENNEWJMENUITEM“添加文件“ITEMOPENSNEWJMENUITEM“添加文件夹“ITEMEXITNEWJMENUITEM“退出“ITEMABOUTNEWJMENUITEM“关于“ITEMOPENADDACTIONLISTENERTHISITEMOPENSADDACTIONLISTENERTHISITEMEXITADDACTIONLISTENERTHISITEMABOUTADDACTIONLISTENERTHISITEMSEQUENCENEWJRADIOBUTTONMENUITEM“顺序播放“ITEMSEQUENCESETSELECTEDTRUEITEMSINGLENEWJRADIOBUTTONMENUITEM“单曲循环“ITEMSEQUENCEADDACTIONLISTENERTHISITEMRANDOMNEWJRADIOBUTTONMENUITEM“随机播放“ITEMRANDOMADDACTIONLISTENERTHISITEMSINGLEADDACTIONLISTENERTHISBUTTONGROUPBGNEWBUTTONGROUPBGADDITEMRANDOMBGADDITEMSEQUENCEBGADDITEMSINGLEMENUFILEADDITEMOPENMENUFILEADDITEMOPENSMENUFILEADDITEMEXITMENUABOUTADDITEMABOUTMENUMODEADDITEMSEQUENCEMENUMODEADDITEMSINGLEMENUMODEADDITEMRANDOMMENUBARADDMENUFILEMENUBARADDMENUABOUTMENUBARADDMENUMODEFRAMESETJMENUBARMENUBARFRAMESETLAYOUTNEWBORDERLAYOUTCONTROLPANELNEWJPANELCONTROLPANELSETLAYOUTNEWFLOWLAYOUTBTNPLAYNEWJBUTTONICONPLAYBTNPRENEWJBUTTONICONPREBTNNEXTNEWJBUTTONICONNEXTBTNPLAYADDACTIONLISTENERTHISBTNPREADDACTIONLISTENERTHISBTNNEXTADDACTIONLISTENERTHISCONTROLPANELADDBTNPRECONTROLPANELADDBTNPLAYCONTROLPANELADDBTNNEXTLISTPANENEWJSCROLLPANE4LISTMODELLOADLISTNEWJLISTLISTMODELIFLISTGETSELECTEDINDEX1LISTSETSELECTEDINDEX0CURRENTINDEX0LISTPANEGETVIEWPORTADDLISTLISTADDMOUSELISTENERNEWMOUSEADAPTERPUBLICVOIDMOUSECLICKEDMOUSEEVENTEIFEGETCLICKCOUNT2IFPLAYERNULLPLAYERCLOSEBTNPLAYSETICONICONPLAYCURRENTINDEXLISTLOCATIONTOINDEXEGETPOINTCURRENTITEMLISTITEMLISTMODELGETCURRENTINDEXLISTSETSELECTEDINDEXCURRENTINDEXPLAYFRAMESETLAYOUTNEWBORDERLAYOUTFRAMEADDCONTROLPANEL,BORDERLAYOUTNORTHFRAMEADDLISTPANE,BORDERLAYOUTCENTERFRAMESETVISIBLETRUEPUBLICVOIDACTIONPERFORMEDACTIONEVENTEIFEGETSOURCEITEMOPEN/ADDFILESJFILECHOOSERJFCNEWJFILECHOOSERFILENAMEEXTENSIONFILTERFILTERNEWFILENAMEEXTENSIONFILTER“音乐文件“,“MP3“,“WAV“JFCSETFILEFILTERFILTERJFCSETFILESELECTIONMODEJFILECHOOSERFILES_ONLYJFCSETMULTISELECTIONENABLEDTRUEIFJFCSHOWOPENDIALOGFRAMEJFILECHOOSERAPPROVE_OPTION5FILEFILESJFCGETSELECTEDFILESFORFILEFFILESLISTITEMITEMNEWLISTITEMFGETNAME,FGETABSOLUTEPATHLISTMODELADDELEMENTITEMELSEIFEGETSOURCEITEMOPENS/ADDFILESINADIRECTORYJFILECHOOSERJFCNEWJFILECHOOSERJFCSETFILESELECTIONMODEJFILECHOOSERDIRECTORIES_ONLYIFJFCSHOWOPENDIALOGFRAMEJFILECHOOSERAPPROVE_OPTIONFILEDIRECTORYJFCGETSELECTEDFILEFILEFILESDIRECTORYLISTFILESNEWJAVAIOFILEFILTERPUBLICBOOLEANACCEPTFILEFIFFGETNAMETOLOWERCASEENDSWITH“MP3“|FGETNAMETOLOWERCASEENDSWITH“WAV“RETURNTRUERETURNFALSEFORFILEFILEFILESLISTITEMITEMNEWLISTITEMFILEGETNAME,FILEGETABSOLUTEPATHLISTMODELADDELEMENTITEMSAVELISTMODELELSEIFEGETSOURCEITEMEXITSYSTEMEXIT0ELSEIFEGETSOURCEITEMABOUTJOPTIONPANESHOWMESSAGEDIALOGFRAME,“作者陆鑫“ELSEIFEGETSOURCEBTNPLAY6/PLAYORPAUSEPLAYELSEIFEGETSOURCEBTNPREPREELSEIFEGETSOURCEBTNNEXT/NEXTMUSICNEXTELSEIFEGETSOURCEITEMSEQUENCEMODE0ELSEIFEGETSOURCEITEMSINGLEMODE1ELSEIFEGETSOURCEITEMRANDOMMODE2/PLAYCONTROL/播放/PUBLICVOIDPLAYIFBTNPLAYGETICONICONPLAYIFISPAUSEPLAYERSTARTSYSTEMOUTPRINTLN“暂停结束“ISPAUSEFALSEELSETRY7PLAYERMANAGERCREATEPLAYERNEWMEDIALOCATOR“FILE“CURRENTITEMGETPATHPLAYERADDCONTROLLERLISTENERTHIS/提取媒体内容PLAYERPREFETCHCATCHNOPLAYEREXCEPTIONE1E1PRINTSTACKTRACECATCHIOEXCEPTIONE1E1PRINTSTACKTRACEBTNPLAYSETICONICONPAUSEELSEPLAYERSTOPISPAUSETRUESYSTEMOUTPRINTLN“暂停“BTNPLAYSETICONICONPLAYPUBLICVOIDNEXTIFCURRENTINDEXLISTMODELGETSIZE1CURRENTINDEX0ELSECURRENTINDEXCURRENTITEMLISTITEMLISTMODELGETCURRENTINDEXLISTSETSELECTEDINDEXCURRENTINDEXPOINTPLISTINDEXTOLOCATIONCURRENTINDEXJSCROLLBARJSCROLLBARLISTPANEGETVERTICALSCROLLBAR/获得垂直转动条JSCROLLBARSETVALUEPY/设置垂直转动条位置BTNPLAYSETICONICONPLAYIFPLAYERNULLPLAYERCLOSEISPAUSEFALSE8PLAYPUBLICVOIDRANDLISTSETSELECTEDINDEXINTMATHRANDOMLISTMODELGETSIZE1POINTPLISTINDEXTOLOCATIONINTMATHRANDOMLISTMODELGETSIZE1JSCROLLBARJSCROLLBARLISTPANEGETVERTICALSCROLLBARJSCROLLBARSETVALUEPYBTNPLAYSETICONICONPLAYIFPLAYERNULLPLAYERCLOSEISPAUSEFALSEPLAYPUBLICVOIDPREIFCURRENTINDEX0CURRENTINDEXLISTMODELGETSIZE1ELSECURRENTINDEXCURRENTITEMLISTITEMLISTMODELGETCURRENTINDEXLISTSETSELECTEDINDEXCURRENTINDEXPOINTPLISTINDEXTOLOCATIONCURRENTINDEXJSCROLLBARJSCROLLBARLISTPANEGETVERTICALSCROLLBAR/获得垂直转动条JSCROLLBARSETVALUEPY/设置垂直转动条位置BTNPLAYSETICONICONPLAYIFPLAYERNULLPLAYERCLOSEISPAUSEFALSEPLAY/ENDPLAYCONTROLPUBLICDEFAULTLISTMODELLOADFILEFILENEWFILE“LISTLST“DEFAULTLISTMODELDLMNEWDEFAULTLISTMODELIFFILEEXISTS9TRYOBJECTINPUTSTREAMOISNEWOBJECTINPUTSTREAMNEWFILEINPUTSTREAMFILEINTEGERSIZEINTEGEROISREADOBJECTIFSIZE0FORINTI0ISIZEILISTITEMITEMLISTITEMOISREADOBJECTDLMADDELEMENTITEMOISCLOSERETURNDLMCATCHFILENOTFOUNDEXCEPTIONEEPRINTSTACKTRACECATCHIOEXCEPTIONEEPRINTSTACKTRACECATCHCLASSNOTFOUNDEXCEPTIONEEPRINTSTACKTRACERETURNDLMPUBLICVOIDSAVEDEFAULTLISTMODELDLMTRYOBJECTOUTPUTSTREAMOOSNEWOBJECTOUTPUTSTREAMNEWBUFFEREDOUTPUTSTREAMNEWFILEOUTPUTSTREAM“LISTLST“INTEGERSIZEDLMGETSIZEOOSWRITEOBJECTSIZEFORINTI0ISIZEILISTITEMITEMLISTITEMDLMGETIOOSWRITEOBJECTITEM10OOSCLOSECATCHEXCEPTIONEEPRINTSTACKTRACEPUBLICVOIDCONTROLLERUPDATECONTROLLEREVENTEIFEINSTANCEOFENDOFMEDIAEVENTIFMODE0/顺序播放SYSTEMOUTPRINTLN“顺序播放“NEXTELSEIFMODE1/单曲循环SYSTEMOUTPRINTLN“播放结束“PLAYERSETMEDIATIMENEWTIME0SYSTEMOUTPRINTLN“单曲循环“PLAYERSTARTELSEIFMODE2SYSTEMOUTPRINTLN“随机播放“RANDRETURN/当提取媒体的内容结束IFEINSTANCEOFPREFETCHCOMPLETEEVENTSYSTEMOUTPRINTLN“开始播放“PLAYERSTARTRETURNLISTITEM类IMPORTJAVAIOSERIALIZABLEPUBLICCLASSLISTITEMIMPLEMENTSSERIALIZABLE11PRIVATESTATICFINALLONGSERIALVERSIONUID1LPRIVATESTRINGNAMEPRIVATESTRINGPATHPUBLICLISTITEMPUBLICLISTITEMSTRINGNAME,STRINGPATHTHISNAMENAMETHISPATHPATHPUBLICSTRINGGETNAMERETURNNAMEPUBLICVOIDSETNAMESTRINGNAMETHISNAMENAMEPUBLICSTRINGGETPATHRETURNPATHPUBLICVOIDSETPATHSTRINGPATHTHISPATHPATHPUBLICSTRINGTOSTRINGRETURNNAME基于JAVA的音乐播放器的设计摘要在信息,技术高速发展的今天,多媒体技术也越来越受到人们的重视。文章对目前使用较多的音乐播放器作出较详细的比较。通过阅读多张文献,分析了一些音乐播放器的功能并考虑了怎样能实现支持更多格式的音乐文件,怎样能满足使用者对播放器的需求。本文主要介绍了一个基于JAVAAPPLET来实现的音乐播放器的设计。并对系统开发中涉及到的关键技术作了探讨,简要分析介绍了JAVA技术和APPLET的工作原理,最后说明系统需要实现的功能。关键词JAVA;APPLET;音乐播放器;前言近年来,听音乐已成为人们生活的一部分,与此同时,音乐播放器以其平易近12人的价格也日趋普及,这大大丰富了业余生活也缓解了工作压力,但尚有诸多不足之处有待改进日常生活中,我们在听音时,常感手动操作甚是麻烦且想寻找某个音频文件须从头到尾逐个查看,这样费时费力很是不便。音乐播放器的实现方法,采用口述音乐文件名的方式即可播放指定歌曲文件,避免了繁琐的查找,亦使其更加人性化,实现了播放器的全自动语音控制。我将来要采用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计算的大技术体系,进入了发展与应用的高级阶段。11JAVA语言对于都数程序设计语言,其程序运行要么采用编译执行,要么采用解释执行的方式。而JAVA语言的特殊之处在于,程序运行既要经过编译又要进行解释,如图11所示。首先,JAVA程序由编译器进行编译,产生了一种中间代码,称为JAVA字节码(JAVABYTECODES)。字节码是JAVA虚拟机的代码,是与平台无关的中性代码,因此不能在各种计算机平台上直接运行,必须在JVM上运行。JAVA解释器是JVM的实现,它把字节码转换为底层平台的机器码,使JAVA程序最终得以运行。无论是APPLICATION还是嵌入式在浏览器中的APPLET,都需要通过解释器才能运行。13MYPROGRAMJAVA_编译器(COMPILER)解释器(INTERPRETER)MYPROGRAMCLASS_MYPROGRAM图11JAVA语言的运行12JAVA的特征JAVA是一种”简单”(SIMPLE),面向对象(OBJECTORIENTED),分布式(DISTRIBUTED),解释性(INTERPRETED),健壮(ORBUST),安全(SECURE),体系结构中立(ARCHITECTURENEUTRAL),可移植性(PORTABLE),高性能(HIGHPERFORMANCE),多线程(MULTITHREADED),和动态(DYNAMIC)“的编程语言。1简单性JAVA语言语法和语义都比较单纯,容易学习和使用。2面向对象作为一种面向对象的编程语言,JAVA不仅最为“纯洁”,同时,它对面向对象方法的支持最为全面。另外,JAVA通过抽象类和接口(INTERFACE)支持面向的多态性要求,既一个对外接口,多种内部实现。3分布式特征JAVA实现两种层次上的分布。1数据分布支持通过JAVA的URL类,JAVA程序可以访问网络撒谎那个的各类信息资源。访问方式完全类似于本地文件系统。2操作分布支持JAVA通过嵌在WWW页面中的APPLET(小应用程序)将计算从服务器分布至客户机。APPLET由WWW浏览器在客户端执行,从而避免了网络拥挤,提高了系统效率。4JAVA的解释性运行JAVA程序需要解释器。程序被编译为成为字节代码的JAVA虚拟机代码。字节代码与机器无关,可以在任何有JAVA解释器的机器上运行。5健壮性JAVA提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。6安全性在发分布式环境中,安全性是一个十分重要的问题。JAVA在语言和运行环境中引入了多级安全措施,其采用的主要安全机制有141内存分配及布局由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的对象,通过该对象可以实现声音演播。21APPLET类生成APPLET要创建APPLET类的子类,一个APPLET的运行为框架由APPLET类来决定的。APPLET类提供了从指定的URL获取图像和声音的方法,使APPLET可以很方便地实现多媒体功能的。要编写APPLET小应用程序,就必须继承APPLET类,并覆盖其中必要的方法。APPLET类为APPLET提供了基本的框架结构是APPLET和其运行环境之间的标准接口。WEB浏览器能够自动调用下列方法来控制APPLET小应用程序的生成和运行INIT方法START方法STOP方法DESTROY方法12343设计本系统要用到的JAVA关键技术31在APPLET中播放声音的方法和步骤在JAVAAPPLET包中的APPLET类和AUDIOCLIP接口提供了播放声音的基本支持。以前计算机存储声音文件的格式有许多,目前JAVA只支持一种声音文件格式有AU,MID,WAV等。对于其他格式的文件,可以用相应地工具软件将它们转换为AU或MID等JAVA支持的文件。在APPLET中播放声音文件有两种方法15(1)在JAVA的API中,APPLET类提供了一个方法PLAY,它可以直接根据URL地址来播放声音。这个方法指定如下PUBLICVOIDPLAYURLURL;PUBLICVOIDPLAYURLURL,STRINGSOUNDFILE;在第一种方法的定义中,参数URL是保存声音文件的绝对URL地址,即统一资源定位,它指定WEB网上的一个声音文件在第二种方法定义中,参数URL是保存声音文件的基地址,而参数SOUNDFILE是声音文件的文件名。如果声音文件与APPLET的HTML文件在相同的目录下,则可以通过使用GETCODEBASE方法来获得该声音文件的基地址。如果APPLET本身的URL地址为“HTTP/WWWTSINGHUAEDUCN/PRO/”,则语句PLAY(GATCODEBASE,“SPACEAU”);等同于语句PLAY“HTTP/WWWTSINGHUAEDUCN/PRO/”,“SPACEAU”;在程序编写过程中,若使用第一种方法定义,则将程序由一个服务器转移到另一服务器上或从一个目录转移到另一个目录下时,必须改变源代码中的URL地址若使用第二种方法定义,即使用GETCODEBASE方法来定位资源文件,则将程序由一个服务器转移到另一个服务器或从一个目录转移到另一个目录下时,不必改变源代码中的URL地址,而只需将声音文件与播放他的JAVA文件放在同一目录下即可。PLAY方法只能进行简单的播放,只能一次敬爱那个声音文件播放完,没有停止和连续播放的功能,所以,一般编写播放声音的程序时不采用此方法。(2)利用JAVA中的AUDIOCLIP类对象播放声音文件。AUDIOCLIP类提供了两种获取声音数据的方法,定义如下AUDIOCLIPGETAUDIOCLIPURLURL;AUDIOCLIPGETAUDIOCLIPURLURL,STRINGSOUNDFILE;它们的参数含义与以上相同。使用时可按如下步骤。声明一个AUDIOCLIP类的对象,如1AUDIOCLIPAUDIO;使用GETAUDIOCLIP方法为AUDIOCLIP类的对象获得句柄,如2AUDGETAUDIOCLIPGETCODEBASE,“SPACEAU”;或一次完成,如AUDIOCLIPAUDGETAUDIOCLIPGETCODEBASE,“SPACEAU”;16或AUDIOCLIPAUDGETAUDIOCLIP“HTTP/WWWTSINGHUAEDUCN/PRO/”,“SPACEAU”使用这种方法创建声音播放程序文件的一般步骤如下创建一个AUDIOCLIP对象。1装入声音文件到AUDIOCLIP对象。2一次播放或者不停地循环播放声音。3停止播放。4JAVAAPPLETAUDIOCLIP类提供了3个方法实现对声音文件播放的控制,它们分别是PLAY,LOOP和STOP。在这个设计过程中使用了JAVAAPPLETAUDIOCLIP类中的PLAY方法播放一个载入的声音文件使用LOOP方法循环地播放该声音文件,并且使用STOP方法来停止播放这个声音文件。方法STAR和STOP是APPLET类中定义的方法,该程序继承了APPLET类,并重新定义了这两个方法,这一过程称做方法的覆盖。这两个方法是由操作系统自动调用的。当程序启动时两个方法,STAR方法由操作系统自动调用,STAR方法在运行时通过AUDIOCLIP对象AUD调用LOOP方法,实现对声音的循环播放。当程序停止运行时,APPLET类中的STOP方法被自动调用,STOP方法运行时通过AUDIOCLIP对象AUD调用AUDIOCLIP中的STOP方法来终止声音文件的播放。32创建播放器的图形用户界面所需的控件321菜单栏与菜单在程序中创建菜单是最常用图形的用户界面之一。JAVA语言中,与菜单相关类有5个JMENUBAR,JMENUITEM,JCHECKBOXMENUITEM和JRADIOBUTTONMENUITEM。实现菜单的过程比较复杂,主要下面三步1创建菜单栏,并将它设计到某个容器中。创建菜单栏需要利用JMENUBAR类,该类只有一个默认构造方法2创建菜单条,并将它们添加到菜单栏中。创建菜单条需要利用JMENU类,该类有多种构造方法,其中最常用的是JMENUSTRINGS。3创建菜单项,并将它们添加到菜单条中。创建菜单项一般需要利用JMENUITEM类,该类有多种构造方法,其中最常用的是JMENUITEMSTRINGTEXT。17322按钮与标签1按钮创建按钮需要利用JBUTTON类,JBUTTON类中常用的方法有PUBLICJBUTTON/创建一个没有标记的空按钮PUBLICJBUTTONICONICON/创建一个标有指定图标的按钮PUBLICJBUTTONSTRINGTEXT/创建一个标有指定文字的按钮PUBLICJBUTTONSTRINGTEXT,ICONICON/创建一个标有指定文字和图表的按钮2标签标签与按钮相同,标签也可以显示一串文字或图像。创建标签需要利用JLABEL类。JLABEL类中常用的构造方法有PUBLICJLABEL/创建一个空标签PUBLICJLABELICONIMAGE/创建具有指定图标的标签PUBLICJLABELICONIMAGE,INTHORIZONTALALIGNMENT/创建具有指定图标和水平对齐方式的标签PUBLICJLABELSTRINGTEXT/创建具有指定文字的标签PUBLICJLABELSTRINGTEXT,INTHORIZONTALALIGNMENT/创建具有指定文字和水平对齐方式的标签PUBLICJLABELSTRINGTEXT,ICONICON,INTHORIZONTALALIGNMENT/创建具有指定文字,图标和水平对齐方式的标签323列表框列表也允许用户从中进行选择。创建列表需要利用JLIST类,JLIST类中常用的构造方法有PUBLICJLIST/创建一个列表,列表中的选项为空PUBLICJLISTOBJECTLISTDATA/创建一个列表,列表中的选项由参数LISTDATA指定18结论本文介绍了基于JAVAAPPLET音乐播放器的关键技术。并对APPLET的基本原理与设计方法,对APPPLET实现的多媒体功能。我将要设计的播放器,使用SWING组件生成播放器的菜单栏,利用JBUTTON类创建按钮,JLABEL类创建标签,JLIST类创建列表框等方法实现播放器的基本功能。参考文献1刘慧宁,那盟JAVA程序设计M北京机械工业出版社,2005,103093122朱喜福,赵敏,夏齐霄,等JAVA程序设计M北京人民邮电出版社,2005,22722903YDANIELLIANG著,马海军,景丽等译JAVA编程原理与实践M北京清华大学出版社2005,83676434徐明浩著,武转海,译JAVA编程基础应用与实例M北京人民邮电出版社,2005,103423475蔡学镛JAVA历史回顾JWWWCNKINET,2009,453556王祖析基于JAVA技术的网络教学互动系统的构建J学术探讨,200974787汤庸主编,冯至圣,申建芳等JAVA程序设计与实践J北京冶金工业出社,2003,12082128马义德,周炜超,文芳,李柏年,李庚基于SPCE061A的声控MP3播放器设计J电子设计,20092173019周华中,李继凯基于J2ME流媒体播放器的模型设计J科技创新导报,2009151810春水东流不让超级旋风自动关联QQ音乐播放器J电脑迷,2009,719本科毕业设计(论文)管理暂行规定毕业设计(论文)是本科人才培养的重要实践性教学环节,也是学士学位评定的重要依据。为了切实做好我校的毕业设计(论文)工作,规范毕业设计(论文)工作的管理,提高毕业设计(论文)的质量,特制定本规定。一、毕业设计(论文)的主要目的(一)培养学生运用所学知识独立地分析和解决本专业范围内一般问题的能力,培养学生的创新意识和实践能力,使学生从事学术研究的能力得到初步的训练;(二)培养学生理论联系实际的工作作风和严谨认真的科学态度;(三)培养学生分析设计能力、研究实验能力、工程实践能力、经济分析能力、外文阅读能力和计算机的运用能力,以及社会调查、文献资料查阅和论文写作能力。二、毕业设计(论文)的基本要求(一)按照各专业“毕业设计(论文)教学大纲”的要求进行;(二)要具有学术性,要对自然科学或社会科学内某一领域进行专门、系统的研究,并表达其研究成果;(三)要具有创见性,要对学术或工程的某个问题有新的发现、新的构想或新的发展和完善;(四)要具有科学性,要求论述系统而完整,首尾一贯而不前后矛盾,实事求是而不主观臆造;(五)要具应用性,要能解决生产实际问题,在技术改造、生产管理等通过方面有所创造;(六)应做到观点正确、论据充分、推理严密、计算准确,层次分明、条理清楚、语言精炼,有必要的图表和相关资料等;(七)应参阅一定数量的外文资料,并要求在毕业设计(论文)中反映出来。三、毕业设计(论文)的工作程序毕业设计(论文)工作程序分为选题、开题、撰写论文或设计、中期检查、答辩、归档等环节。四、毕业设计(论文)的时间安排毕业设计(论文)工作时间为812周,时间安排应按20本科生毕业设计(论文)工作流程执行,集中用于毕业设计(论文)的时间不得少于专业培养计划规定的周数。五、毕业设计(论文)的领导与管理全校毕业设计(论文)在分管教学副校长领导下进行,分级管理,层层负责。(一)教务处毕业设计(论文)管理工作职责1、汇总各院(部)毕业设计(论文)题目和指导教师安排,协调有关问题;2、做好毕业设计(论文)前期、中期、后期检查工作,对未达到各阶段进度、质量要求或违反有关规定的院(部)提出整改要求;3、开展学校毕业设计(论文)工作评估和研究工作。(二)院(部)毕业设计(论文)管理工作职责各院(部)成立毕业设计(论文)工作领导小组,确定毕业设计(论文)指导教师,布置毕业设计(论文)工作任务,检查本院(部)毕业设计(论文)工作落实情况。院(部)毕业设计(论文)管理工作职责为1、审查毕业设计(论文)选题、下达任务书,安排指导教师,布置毕业设计(论文)有关工作;2、定期检查毕业设计(论文)工作进展情况,协调处理毕业设计(论文)中的有关问题,督促检查指导教师的工作;3、对学生毕业设计(论文)按规范化要求进行形式审查,组织毕业设计(论文)答辩和成绩评定工作。对答辩小组提出的优秀的毕业设计(论文)及评阅答辩中有争议的毕业设计(论文),组织答辩委员会进行复议,最终确定成绩;4、按学校有关要求,保存与毕业设计(论文)有关的电子和纸质文档;5、做好本院(部)学生毕业设计(论文)总结与评估工作。(三)毕业设计(论文)指导教师职责1、指导学生选题,拟定任务书,安排学生做开题报告,编写指导方案,制定计划和工作程序;2、对学生提出具体要求,指定主要参考资料和社会调查内容,规定学生应完成的查阅中外文资料、文献综述、开21题报告、各项实验数据、计算工作(包括上机)、设计(论文)等;3、采取多种方式检查学生的工作进度和工作质量,及时解答和处理学生提出的有关问题,并认真填写毕业设计(论文)指导记录表;4、做好学生外文翻译的评阅工作,指导学生按规范要求正确撰写毕业设计(论文);5、在学生答辩前对毕业设计(论文)(包括设计说明书、计算资料、实验报告、图纸或论文等)进行审查,认真填写毕业设计(论文)评语,指导学生参加答辩;6、根据院(部)安排参加答辩工作。(四)学生在毕业设计(论文)过程中必须做到1、重视毕业设计(论文)过程,明确各环节目的、意义和要求,虚心接受指导教师和实验技术人员的指导,保质保量地完成毕业设计(论文);2、独立完成规定的工作任务,不弄虚作假,不抄袭、剽窃他人成果;3、认真填写本科毕业设计(论文)研究过程记录表;4、毕业设计(论文)成果、资料应于答辩结束后及时交指导教师收存,凡涉及到国家机密、知识产权、技术专利、商业利益的成果未经院(部)许可,学生不得擅自带离学校。六、毕业设计(论文)的选题与开题(一)选题原则1、原则上一生一题,当一个课题比较大时,可以分成几个小课题,每个学生完成一个小课题时必须保证其主要部分为独立进行的工作,使每个学生都受到较全面的训练;2、选题应体现本专业的培养目标,达到毕业设计(论文)大纲的教学要求;3、选题应特别注意有利于学生综合应用所学知识,有利于学生能力的培养,并能保证各专业所应当具有的基本技能的训练;4、选题应与社会、生产、教学、科研等实际相结合。理工科毕业设计(论文)的选题应注重在具有实际应用前景、具有创新构思的课题中选取,鼓励理工科学生进行毕业设22计,其中,工科毕业设计所占比例应不少于80;文科及经管类的选题需注重分析解决当前经济改革、社会现实生活和理论研究中的热点、难点、焦点问题;。毕业设计论文在实验、实习、工程实践和社会调查等社会实践中完成的比例要在50以上。5、选题难度和工作量要适当,使学生能在规定的时间内完成任务;6、选题要有一定层次区分,有利于各类学生提高水平,鼓励学生有所创新;7、各专业的选题数须多于本专业当届的毕业生数。每学年选题应适当更新,不同届选题重复率须控制在20以内;8、各专业选题须经院(部)严格审查并报教务处备案。(二)选题、开题程序1、指导教师提出的毕业设计(论文)课题须经院(部)审查后向学生公布,通过师生双向选择或经协商分配,确定学生毕业设计(论文)题目及指导教师。选题和指导教师一经确定,不得随意更改;2、各院(部)应不迟于第七学期第十四周结束前完成选题工作,毕业设计(论文)任务书不迟于第七学期第十五周前下达给学生,院(部)应将毕业设计(论文)选题汇总表于第七学期第十六周结束前报教务处;3、毕业设计(论文)开题工作应在第七学期结束前完成,包括文献调研、文献综述、开题报告等,院(部)应根据本院(部)毕业设计(论文)工作的具体计划,安排学生在指导小组范围内作开题报告;七、毕业设计(论文)任务书(一)毕业设计(论文)任务书是学生进行毕业设计(论文)的指导性文件,每个学生都必须有自己的任务书;(二)任务书的内容包括设计(论文)研究的背景和依据、任务和基本要求、进程安排等;(三)任务书由指导教师填写,交教研室审查,经院(部)批准后方可实施;(四)毕业设计(论文)结束后,任务书要与毕业设计(论文)一起送交院(部)保存。23八、毕业设计(论文)指导教师配备(一)毕业设计(论文)指导教师应由具有中职及以上专业技术职务的教师或工程技术人员担任,助教等初级职称人员不能单独指导毕业设计(论文),但可根据需要安排协助指导教师的工作。指导教师名单由院(部)毕业设计(论文)工作领导小组审定后,报教务处备案;(二)指导毕业设计(论文)期间,指导教师必须坚守岗位,各院(部)要严格控制指导教师出差。确因工作需要出差的,须经院(部)分管教学副院长批准,并委派水平相当的教师代理指导;(三)对于在校外进行毕业设计(论文)的学生,院(部)可聘请相当于中级专业技术职务及以上的工程技术人员或研究人员担任指导教师,但院(部)必须指定专人进行检查,掌握进度,保证质量,协调解决有关问题;(四)每位指导教师指导的学生数原则上不超过8人,科研、教研能力突出的高级职称教师或具有博士学位人员可适当增加指导人数(最高不超过10人)。指导教师对每个学生的指导每个环节不得少于1次,总计不得少于3次。九、设计(论文)的撰写1、毕业设计(论文)的撰写按“本科毕业设计(论文)撰写规范”执行;2、设计(论文)正文字数文科(除外语类)10000字以上,理工科及外语、艺术类6000字以上;3、所有设计(论文)应按规定格式打印1份

温馨提示

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

最新文档

评论

0/150

提交评论