当前位置:首页 > 基于java的音乐播放器的设计
三.详细设计
(一)核心技术介绍
在Java.Applet包中的Applet类和AudioClip接口提供了播放声音的基本支持。以前计算机存储声音文件的格式有许多,目前Java只支持一种声音文件格式有.au,.mid,.wav等。对于其他格式的文件,可以用相应地工具软件将它们转换为.au或.mid等Java支持的文件。在Applet中播放声音文件有两种方法:
(1)在Java的API中,Applet类提供了一个方法play(),它可以直
接根据URL地址来播放声音。这个方法指定如下: Public void play(URL url);
Public void play(URL url,string soundFile);
在第一种方法的定义中,参数url是保存声音文件的绝对URL地址,即统一资源定位,它指定Web网上的一个声音文件;在第二种方法定义中,参数URL是保存声音文件的基地址,而参数soundFile是声音文件的文件名。如果声音文件与Applet的HTML文件在相同的目录下,则可以通过使用getCodeBase()方法来获得该声音文件的基地址。如果
Applet
本
身
的
URL
地
址
为
“http//www.Tsinghua.edu.cn/pro/”,则语句: Play(gatCodeBase(),“space.au”);
6
等同于语句:
Play(“http//www.tsinghua.edu.cn/pro/”,“space.au”); 在程序编写过程中,若使用第一种方法定义,则将程序由一个服务器转移到另一服务器上或从一个目录转移到另一个目录下时,必须改变源代码中的URL地址:若使用第二种方法定义,即使用getCodeBase()方法来定位资源文件,则将程序由一个服务器转移到另一个服务器或从一个目录转移到另一个目录下时,不必改变源代码中的URL地址,而只需将声音文件与播放他的Java文件放在同一目录下即可。
Play()方法只能进行简单的播放,只能一次敬爱那个声音文件播放完,没有停止和连续播放的功能,所以,一般编写播放声音的程序时不采用此方法。
(2)利用Java中的AudioClip类对象播放声音文件。AudioClip类提供了两种获取声音数据的方法,定义如下: AudioClip getAudioClip(URL url);
AudioClip getAudioClip(URL url,String soundFile); 它们的参数含义与以上相同。使用时可按如下步骤。 1)声明一个AudioClip类的对象,如: ○
AudioClip audio;
7
2)使用getAudioClip()方法为AudioClip类的对象获得句柄,如: ○
aud=getAudioClip(getCodeBase(),“space.au”); 或一次完成,如:
AudioClip aud=getAudioClip(getCodeBase(),“space.au”); 或:
AudioClip aud=getAudioClip(“HTTP//www.tsinghua.edu.cn/pro/”,“space.au”
使用这种方法创建声音播放程序文件的一般步骤如下:
结束 开始 装入 声音文件到AudioClip对象 一次播放或者不停地循环播放声音 停止播放
8
Java.applet.AudioClip类提供了3个方法实现对声音文件播放的控制,它们分别是play(),loop()和stop()。在这个设计过程中使用了java.applet.AudioClip类中的play()方法播放一个载入的声音文件;使用loop()方法循环地播放该声音文件,并且使用stop()方法来停止播放这个声音文件。
方法star()和stop()是Applet类中定义的方法,该程序继承了Applet类,并重新定义了这两个方法,这一过程称做方法的覆盖。这两个方法是由操作系统自动调用的。当程序启动时两个方法,star()方法由操作系统自动调用,star()方法在运行时通过AudioClip对象aud调用loop()方法,实现对声音的循环播放。当程序停止运行时,Applet类中的stop()方法被自动调用,stop()方法运行时通过AudioClip对象aud调用AudioClip中的stop()方法来终止声音文件的播放。
(二)创建播放器的图形用户界面所需的控件 1菜单栏与菜单
在程序中创建菜单是最常用图形的用户界面之一。Java语言中,与菜单相关类有5个:JMenuBar,JMenuItem,JCheckBoxMenuItem和JRadioButtonMenuItem。
9
共分享92篇相关文档