想请教大家一个问题,书上的例题,但就是放不出音乐来
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.swing.*;
public class sound extends JFrame{
private JButton button=new JButton("暂停");
private Clip clip;
public sound(){
setSize(300,300);
setLocation(400,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try{
InputStream stream=new FileInputStream("sounds/music.mid");
AudioInputStream audioStream=AudioSystem.getAudioInputStream(stream);
clip.open(audioStream);
clip.start();
}catch(Exception e){
e.printStackTrace();}
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
if(button.getText().equals("暂停")){
clip.stop();
button.setText("重新开始");}
else{
clip.start();
button.setText("暂停");}
}
});
setLayout(new FlowLayout());
add(button);}
public static void main(String[] args){
sound frame=new sound();
frame.setVisible(true);}}
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.swing.*;
public class sound extends JFrame{
private JButton button=new JButton("暂停");
private Clip clip;
public sound(){
setSize(300,300);
setLocation(400,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try{
InputStream stream=new FileInputStream("sounds/music.mid");
AudioInputStream audioStream=AudioSystem.getAudioInputStream(stream);
clip.open(audioStream);
clip.start();
}catch(Exception e){
e.printStackTrace();}
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
if(button.getText().equals("暂停")){
clip.stop();
button.setText("重新开始");}
else{
clip.start();
button.setText("暂停");}
}
});
setLayout(new FlowLayout());
add(button);}
public static void main(String[] args){
sound frame=new sound();
frame.setVisible(true);}}
解决方案 »
- Image 和 BufferedImage 是不是与String / StringBuffer 的区别一致?
- 如何通过socket代理来访问socket服务端?
- 访问远程文件的问题
- 配置tomcat时候,“找不到文件Djava.endorsed.dirs=.&
- 关于this的问题?
- 主建的生成问题
- URL URLConnection的使用和JVM有关?咋会这样哩!?
- 把access的驱动改成了sql的,我的类应该怎么变化。
- 谁有连结池的例子?
- socket多线程 外网通信输入流获取出问题
- 处理通过servlet收到的xml数据,有疑惑
- 用jxl将数据库中的数据导出到excel,代码都走完了,但是页面没有任何反应,无法下载,代码如下,求高手指点
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.swing.*;import sun.audio.AudioPlayer;
import sun.audio.AudioStream;public class sound extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L; private JButton button = new JButton("暂停"); private InputStream stream; public sound() {
setSize(300, 300);
setLocation(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try {
stream = new FileInputStream("F:/abc.mid");
AudioStream audioStream = new sun.audio.AudioStream(stream);
AudioPlayer.player.start(audioStream);
} catch (Exception e) {
e.printStackTrace();
}
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (button.getText().equals("暂停")) {
AudioPlayer.player.stop(stream);
button.setText("重新开始");
} else {
AudioPlayer.player.start();
button.setText("暂停");
}
}
});
getContentPane().setLayout(null);
getContentPane().add(button);
} public static void main(String[] args) {
sound frame = new sound();
frame.setVisible(true);
}
}你源码报错信息是:
java.io.FileNotFoundException: sounds\music.mid (系统找不到指定的路径。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
at sound.<init>(sound.java:21)
at sound.main(sound.java:45)
java.lang.Error: Do not use sound.setLayout() use sound.getContentPane().setLayout() instead
at javax.swing.JFrame.createRootPaneException(JFrame.java:465)
at javax.swing.JFrame.setLayout(JFrame.java:531)
at sound.<init>(sound.java:40)
at sound.main(sound.java:45)