如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第10章多媒体编程10.1检索与使用声音文件由于Java采用了JVM虚拟机机制,一个Java程序就可以运行在任何一个安装了Java虚拟机的系统上,这样就使得Java程序与操作平台无关。因此,在Java环境下播放声音的方法与计算机硬件无关,从而简化了Java处理多媒体的编程难度。Java在Applet小应用程序中提供的最简单的声音播放技术是使用Applet类中的play()方法播放声音文件。下面就介绍一下这种播放声音文件的方法。play()方法的格式如下:publicvoidplay(URLurl);publicvoidplay(URLurl,Stringname);play(URLurl)方法能播放URL地址为url的声音文件,而play(URLurl,Stringname)方法则能播放URL地址为url、文件名为name的声音文件。如果系统没有找到该声音文件,计算机将不播放任何声音。〖例10.1〗简单声音文件播放应用举例。播放声音剪辑文件test.wav,该声音文件位于Applet小应用程序所在目录中。//播放当前目录下的声音文件test.wav。Li10_01.javaimportjava.awt.*;importjava.applet.*;publicclassLi10_01extendsApplet{publicvoidstart(){play(getCodeBase(),"test.wav");}publicvoidpaint(Graphicsg){//用来在屏幕上显示正在播放的声音文件信息g.drawString("正在播放音乐…"+getCodeBase()+":test.wav",5,10);}}在运行本例程序前,读者要确认在Li10_01程序所在目录中存放有test.wav声音文件,而程序中的getCodeBase()方法返回Applet小应用程序的URL。play()方法只能播放声音文件一次,如果希望循环播放声音文件,或随时停止播放,则该方法不能满足需要。AudioClip对象2.创建AudioClip对象并用getaudioClip()方法将其初始化,格式如下:AudioClipaudio=getAudioClip(getCodeBase(),"AudioFileName.au");其中:audio是创建的AudioClip对象;getAudioClip()方法将声音文件从Internet网络上装入Applet小应用程序;getCodeBase()返回Applet小应用程序的URL;AudioFileName.au是声音文件名,如果它位于Applet小应用程序目录的子目录中,还必须包含相应的路径。3.利用下面AudioClip类提供的3个有关声音播放的方法进行播放控制:play():播放声音文件一次。loop():循环播放声音文件。stop():停止正在播放或循环播放的声音文件。AudioClip接口是一个播放声音文件的简单抽象,每一个AudioClip都可以独立播放,并且多个AudioClip也可以同时播放,最终的声音是一个混合的合成声音。把声音加载到AudioClip对象中假设“gun.wav”是指当前目录下的声音文件,下面的代码行说明加载声音文件进入剪贴对象:AudioClipco=getAudioClip(getCodeBase(),"gun.wav");getAudioClip()方法仅仅能在applet内调用,在Java应用程序里是不能使用该方法的。随着JAVA2的引入,应用程序可以用Applet类的newAudioClip()方法装入声音文件。newAudioClip()方法格式为:publicstaticfinalAudioClipnewAudioClip(URLurl)前面使用getAudioClip()方法加载声音文件的代码可以改写为下面的代码以用于Java应用程序:AudioClipco=newAudioClip(“gun.wav”);该方法也是java.applet.Applet类的一部分,可以用于Applet,也可以用于非Applet程序。Applet可以使用getCodeBase()和getDocumentBase()获得的参数构造URL来使用音频文件,getCodeBase()方法获取Applet类文件所在位置的URL地址,返回的地址可以是因特网上的一个地址,也可以是本地磁盘上的一个位置。用于因特网地址的标准协议是http,本地地址的协议是File。getDocumentBase()方法获取HTML文档的URL地址。现在,可在任何地方使用方法play()播放声音文件了。play()一旦被调用立刻开始播放声音。但有一