练习56 声音播放器(网页中)
本例
一句话讲解
新学知识
使用AudioClip类
播放声音文件
使用ActionEvent类
响应用户动作
已学知识
使用按钮类JButton
生成按钮
使用容器类Container
界面布局
一、练习具体要求
本例制作网页中的声音播放器,运行效果如图56-1所示。执行本例实例后,将创建一个带有1个下拉框和3个按钮的运行界面。鼠标单击下拉框可以选择要播放的声音文件(*.au),按下播放按钮可以播放当前的声音文件,按下循环按钮可以循环播放当前声音文件,按下停止按钮可以停止播放当前声音文件。本实例的知识点有:JComboBox类,AudioClip类,Container类和JButton类的应用。
二、程序及注释
(1)编程思路:本例因为要制作播放界面,所以首先实例化Container类的对象c定义一个容器。然后将Jbutton类的实例化对象play, loop, stop和JComboBox 的实例化对象comboBox一起加到c之中。这样就完成了界面的设计。然后,因为播放声音文件,所以首先要实例化AudioClip类的对象audio,audio1和audio2。audio1和audio2分别保存要播放的声音文件;在播放之前,由函数comboBox.getSelectedIndex()把选中的声音文件传给audio,通过函数audio.play()完成播放。最后,因为要实现人机交互.,所以首先要通过actionPerformed(ActionEvent e)函数来实现对按钮相应的事件进行监听,函数e.getSource()可以判断当前事件来源于哪一个按钮产生,这样声音播放器就可以正常工作了。
(2)程序实现及注释:
//AudioPlay.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.*;
public class AudioPlay extends JApplet
implements ItemListener, ActionListener
{
private AudioClip audio1, audio2, audio;
private JButton play, loop, stop;
private String item[] = {"music", "bird"};
private JComboBox comboBox = new JComboBox(item);
//界面设计和程序的初始化
public void init()
{
//实例化容器类
Container c = getContentPane();
c.setLayout(new FlowLayout(FlowLayout.CENTER));
comboBox.addItemListener(this);
c.add(comboBox);
c.setBackground(Color.black);
play = new JButton("播放");
play.addActionListener(this);
c.add(play);
loop = new JButton("循环");
loop.addActionListener(this);
c.add(loop);
stop = new JButton("停止");
stop.addActionListener(this);
c.add(stop);
audio1 = getAudioClip(getDocumentBase(), "music.au");
audio2 = getAudioClip(getDocumentBase(), "bird.au");
audio = audio1;
}
//停止播放
public void stop()
{
audio.stop();
}
//选择下拉框时产生的事件
public void itemStateChanged(ItemEvent e)
{
audio.stop();
audio = comboBox.getSelectedIndex()==0 ? audio1:audio2;
}
//响应按钮事件
public void actionPerformed(ActionEvent e)
{
if (e.getSource()==play)
audio.play();
else if (e.getSource()==loop)
audio.loop();
else if (e.getSource()==stop)
audio.stop();
}
}
三、练习效果(如图56-1所示)
本实例代码编写完毕,存盘为:C: j2sdk1.4.0\javaprograms\ AudioPlay.java。
打开计算机的命令提示符窗口,然后在命令提示符窗口中,定位到javaprograms
,输入javac AudioPlay.java 来编译程序,最后将程序加载到网页上。在javaprograms文件夹下新建一个记事本文件,内容为
,然后保存为AudioPlay.html的网页文件。
本例制作完毕,用浏览器打开AudioPlay.html文件便可以看到制作效果。
图56-1 练习效果
四、
提高
本练习制作声音播放器的实例,运用了Java2中的图形界面技术,声音技术和消息响应技术。通过图形界面技术,制作出播放器的界面。通过消息响应机制,使程序可以响应用户的鼠标操作,进行声音播放的控制。