Java 实现声音播放程序
更新时间:2020年12月22日 17:18:30 作者:小星_log
这篇文章主要介绍了Java 实现声音播放程序的示例代码,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
package newpackage1;
import java.applet.AudioClip;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
// 声音播放程序
public class AudioPlayDemo extends JFrame implements ActionListener, ItemListener {
boolean looping = false; //是否循环播放
String[] choics = { "chimes.wav", "start.wav" }; //声音文件名数组
URL file1 = getClass().getResource(choics[0]); //声音文件1
URL file2 = getClass().getResource(choics[1]); //声音文件2
AudioClip sound1 = java.applet.Applet.newAudioClip(file1); //声音剪辑对象1
AudioClip sound2 = java.applet.Applet.newAudioClip(file2); //声音剪辑对象2
AudioClip chosenClip = sound1; //选择的声音剪辑对象
JComboBox jcbFiles = new JComboBox(choics); //文件选择组合框
JButton playButton = new JButton("播放"); //播放按钮
JButton loopButton = new JButton("循环播放"); //循环播放按钮
JButton stopButton = new JButton("停止"); //停止播放按钮
JLabel status = new JLabel("选择播放文件"); //状态栏标签
JPanel controlPanel = new JPanel(); //控制面板用于包容按钮
Container container = getContentPane(); //获得窗口内容窗格
public AudioPlayDemo() { //构造器
super("声音播放程序"); //调用父类构造器设置窗口标题栏
jcbFiles.setSelectedIndex(0); //设置组合框选择项
jcbFiles.addItemListener(this); //为播放按钮添加项目监听器
//为播放按钮、循环播放按钮、停止播放按钮添加动作监听器
playButton.addActionListener(this);
loopButton.addActionListener(this);
stopButton.addActionListener(this);
stopButton.setEnabled(false); //设置停止播放按钮不可用
//把播放按钮、循环播放按钮、停止播放按钮加入控制面板
controlPanel.add(playButton);
controlPanel.add(loopButton);
controlPanel.add(stopButton);
//把文件选择组合框、控制面板、状态栏标签加入到窗口内容窗格
container.add(jcbFiles, BorderLayout.NORTH);
container.add(controlPanel, BorderLayout.CENTER);
container.add(status, BorderLayout.SOUTH);
setSize(300, 130); //设置窗口大小
setVisible(true); //设置窗口可视
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序
}
//文件选择组合框事件处理
public void itemStateChanged(ItemEvent e) {
if (jcbFiles.getSelectedIndex() == 0) {
chosenClip = sound1;
} else {
chosenClip = sound2;
}
}
//按钮事件处理
public void actionPerformed(ActionEvent event) {
if (chosenClip == null) {
status.setText("声音未载入");
return; //如果AudioClip对象为空,则直接返回
}
Object source = event.getSource(); //获取用户洗涤激活的按钮
//播放按钮事件处理
if (source == playButton) {
stopButton.setEnabled(true); //设置停止播放按钮可用
loopButton.setEnabled(true); //设置循环播放按钮可用
chosenClip.play(); //播放选择的声音剪辑对象一次
status.setText("正在播放"); //设置状态栏信息
}
//循环播放按钮事件处理
if (source == loopButton) {
looping = true;
chosenClip.loop(); //循环播放选择的声音剪辑对象
loopButton.setEnabled(false); //设置循环播放按钮不可用
stopButton.setEnabled(true); //设置停止播放按钮可用
status.setText("正在循环播放"); //设置状态栏信息
}
//停止播放按钮事件处理
if (source == stopButton) {
if (looping) {
looping = false;
chosenClip.stop(); //停止循环播放选择的声音剪辑对象
loopButton.setEnabled(true); //设置循环播放按钮可用
} else {
chosenClip.stop(); //停止播放选择的声音剪辑对象
}
stopButton.setEnabled(false); //设置循环播放按钮可用
status.setText("停止播放"); //设置状态栏信息
}
}
public static void main(String s[]) {
new AudioPlayDemo(); //创建AudioPlayDemo对象
}
}


以上就是Java 实现声音播放程序的详细内容,更多关于Java 声音播放的资料请关注脚本之家其它相关文章!
相关文章
使用apache 的FileUtils处理文件的复制等操作方式
这篇文章主要介绍了使用apache 的FileUtils处理文件的复制等操作方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-07-07
IntelliJ IDEA cmd和idea Terminal查看java版本不一致的解决
原来win10电脑上安装的是jdk8的版本,因某些原因,现在想换成jdk7的版本,修改环境变量后,在cmd中执行 [java -version]命令,显示的是7的版本,遇到这样的问题如何解决呢?下面小编给大家分享IntelliJ IDEA cmd和idea Terminal查看java版本不一致的解决方案,一起看看吧2023-09-09
WebSocket获取httpSession空指针异常的解决办法
这篇文章主要介绍了在使用WebSocket实现p2p或一对多聊天功能时,如何获取HttpSession来获取用户信息,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧2025-01-01


最新评论