【Java开源代码栏目提醒】:网学会员为需要Java开源代码的朋友们搜集整理了AudioChoiceTest.java相关资料,希望对各位网友有所帮助!
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
// 让用户从几个音频片段中选择来播放
public class AudioChoiceTest extends Applet implements ActionListener
{
// 程序中声音的名字
public final String[] AUDIO =
{ "ping", "pop", "return", "salvation", "shuffle", "squish" };
// 包含上述字符串数组的下拉框
private Choice choice;
// 真实的音频片段数据
private AudioClip[] clips;
// 控制播放停止的按钮
private Button playClip;
private Button loopClip;
private Button stopClip;
private Button stopAllClips;
// 跟踪当前哪些音频片段在播放
private boolean[] clipsPlaying;
public void init()
{
setBackground(new Color(48, 255, 0));
// 构建下拉框和 AudioClip 对象
choice = new Choice();
clips = new AudioClip[AUDIO.length];
clipsPlaying = new boolean[AUDIO.length];
for(int i = 0; i < AUDIO.length; i++)
{
// 为每一个选项添加一个描述的字符串
choice.add(AUDIO[i]);
// 添加音频片段的路径和扩展名
clips[i] = getAudioClip(getCodeBase(), "audio/"+AUDIO[i]+".au");
// 标志这个片段是否在播放的布尔值
clipsPlaying[i] = false;
}
add(choice);
// 创建播放和停止按钮
playClip = new Button("Play clip");
playClip.addActionListener(this);
add(playClip);
loopClip = new Button("Loop clip");
loopClip.addActionListener(this);
add(loopClip);
stopClip = new Button("Stop clip");
stopClip.addActionListener(this);
add(stopClip);
stopAllClips = new Button("Stop all clips");
stopAllClips.addActionListener(this);
add(stopAllClips);
// 如何没有什么要停止的话把停止按钮变灰
stopClip.setEnabled(false);
stopAllClips.setEnabled(false);
}
// 停止所有音频片段的播放
public void stop()
{
for(int i = 0; i < AUDIO.length; i++)
{
if(clipsPlaying[i])
{
clips[i].stop();
}
}
}
// 允许用户使得音频片段播放、循环播放或者停止
public void actionPerformed(ActionEvent e)
{
int clipIndex = choice.getSelectedIndex();
AudioClip clip = clips[clipIndex];
// 播放被选中的音频片段
if(e.getSource() == playClip)
{
clip.play();
stopClip.setEnabled(true);
stopAllClips.setEnabled(true);
clipsPlaying[clipIndex] = true;
}
// 循环播放被选中的音频片段
else if(e.getSource() == loopClip)
{
clip.loop();
stopClip.setEnabled(true);
stopAllClips.setEnabled(true);
clipsPlaying[clipIndex] = true;
}
// 停止播放被选中的音频片段
else if(e.getSource() == stopClip)
{
clip.stop();
stopClip.setEnabled(false);
stopAllClips.setEnabled(false);
clipsPlaying[clipIndex] = false;
// 只要有一个音频片段在播放就激活停止按钮
for(int i = 0; i < AUDIO.length; i++)
{
if(clipsPlaying[i])
{
stopClip.setEnabled(true);
stopAllClips.setEnabled(true);
break;
}
}
}
// 停止播放所有的音频片段
else if(e.getSource() == stopAllClips)
{
for(int i = 0; i < AUDIO.length; i++)
{
if(clipsPlaying[i])
{
clips[i].stop();
clipsPlaying[i] = false;
}
}
stopClip.setEnabled(false);
stopAllClips.setEnabled(false);
}
}
} // AudioChoiceTest
上一篇:
AudioCapture.java
下一篇:
还记得,那年的风车吗?