此代码有什么问题?声明playMusicMethod时仍然会出错。坐了这个约一个小时仍然无法弄清楚。试图在另一个只使用main方法的类中使用此方法,并且它有效。
import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;
import java.awt.event.*;
import javax.swing.*;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.Line;
import javax.sound.sampled.LineEvent;
import javax.sound.sampled.LineListener;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import sun.audio.*;
import sun.audio.AudioPlayer;
import sun.audio.AudioStream;
public class MainClass extends JFrame {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setSize(200, 200);
JButton click = new JButton("Click me");
click.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
playMusic("Music\\somebody.wav");
}
});
frame.add(click);
}
public static void playMusic(String filePath) {
String filePath1 = filePath;
InputStream audio;
try {
audio = FileInputStream(new File(filePath1));
AudioStream music = new AudioStream(audio);
AudioPlayer.player.start();
}
catch(Exception e) {
}
}
}
答案 0 :(得分:3)
您错误地实例化了FileInputStream
。
替换它:
audio = FileInputStream(new File(filePath1));
通过
audio = new FileInputStream(new File(filePath1));