我正在编写一个小闹钟程序,当闹钟时间到时,它会多次播放音频文件。
程序的报警端就完成了。现在我要播放文件了。我使用 jFileChooser 来选择文件。javax.sound.sampled.AudioInputStream 、 javax.sound.sampled.AudioSystem 和 javax.sound.sampled.Clip 播放我的 wav 文件。工作也一样。
但我真的只想播放一个 wav 文件,而且我还希望能够在多个系统上移动这个闹钟,所以我想避免使用 jFileChooser 来选择我的闹钟铃声。我不想每次运行程序时都必须浏览和选择文件。
给文件一个相对路径(例如,在与 jar 相同的文件夹中)然后修复路径字符串会更容易吗?或者以某种方式使 wav 成为 jar 文件的一部分会更容易(这是我更喜欢的,因为那时我根本不必担心 wav 文件。它只是一个独立的 jar 文件作为闹钟。一个字节数组,也许?)
提前致谢!对不起,如果这太愚蠢了。我是新手!
这是我的 AudioInputStream 代码。
public void getaudPath() {
try {
JFileChooser chooser;
String choosertitle=null;
chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"WAV only", "wav");
chooser.setFileFilter(filter);
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle(choosertitle);
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
apath = (chooser.getSelectedFile()).toString();
File soundFile = new File(apath);
AudioInputStream audioIn = AudioSystem.getAudioInputStream(soundFile);
URL url = this.getClass().getClassLoader().getResource(apath);
clip = AudioSystem.getClip();
clip.open(audioIn);
JOptionPane.showMessageDialog(this,"Got file, A-okay!");
} else {
apath = null;
}} catch (Exception e) {JOptionPane.showMessageDialog(this,"Error in getting sound file:=> "+e); }
}