我一直在创建一个程序,在它自己的jar文件中播放音频文件,而我在实际播放音频文件方面遇到了问题。
public class soundPlayer
{
public String currentSound ="";
public soundPlayer(String soundName)
{
currentSound = soundName;
}
public void playSound()
{
try
{
Clip clip = AudioSystem.getClip();
clip.open(AudioSystem.getAudioInputStream(this.getClass()
.getResourceAsStream("/"+currentSound)));
clip.start();
}
catch (Exception exc)
{
System.out.println(exc.getMessage());
exc.printStackTrace(System.out);
}
}
这是soundPlayer类。我有一个类似的类来处理jar文件之外的文件,但我无法从内部工作。
关于这个类的一个重要注意事项是它似乎确实检测到文件存在,因为如果我更改文件名,我会得到一个空指针异常,因此文件被看到但只是没有播放。我已经看了几个线程,但他们的解决方案都没有对我有用。
更新:我想更清楚地说,当我在编译文件后尝试播放andio时,它要求wave文件与Jar相同,我相信你可以想象如何这可能是一件坏事。