好的,今天我终于决定在尝试修复Java程序后问我的Java程序是什么问题。如果您没有阅读标题,这是我的问题:我试图在程序中播放音乐,但它会返回错误。
首先,我必须把最重要的部分放在一边;班级
import java.io.File;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
public class Runawaytrain {
public void play() {
try {
AudioInputStream in = AudioSystem.getAudioInputStream(new File("hard1.wav"));
Clip clip = AudioSystem.getClip();
clip.open(in);
clip.start();
Thread.sleep(clip.getMicrosecondLength());
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args){
new Runawaytrain().play();
}
}
这个程序我实际上用作测试,因为我在一个共同创作的游戏中使用的音乐不会播放。所以当我制作这个程序时,我得到了相同的堆栈跟踪:
javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1189)
at krap2.Runawaytrain.play(Runawaytrain.java:12)
at krap2.Runawaytrain.main(Runawaytrain.java:22)
文件hard1.wav包含在我的项目目录中。出于某种原因,它不会发挥作用,并且不断返回堆栈跟踪。
但我发现我的节目有点奇怪;当我使用URL中的音乐时,它可以工作。所以我尝试使用file://协议插入一个URL,但仍然没有运气。
所以,无论如何,为了完成这个,我会提供一些可能有助于回答问题的信息:
•操作系统:Mac
•安装了JVM:1.8.0
•音乐源:最初是一个MP3文件,通过VLC转换为.wav格式
由于
答案 0 :(得分:0)
我很确定在制作新的File()时需要放置文件的整个系统路径(因此在Windows上它将是“Users / username /.../ hard1.wav”或者其他任何东西将在Mac上)。