Java BigClip的问题
我一直在尝试在我的应用程序中播放音乐。我一直在使用BigClip代码示例:Java BigClip的问题,java,url,audio,nullpointerexception,malformedurlexception,Java,Url,Audio,Nullpointerexception,Malformedurlexception,我一直在尝试在我的应用程序中播放音乐。我一直在使用BigClip代码示例: try { url = new URL(Sounds.class.getResourceAsStream("title1.wav").toString()); } catch (MalformedURLException e2) { // TODO Auto-generated catch block e2.printStackTrace()
try {
url = new URL(Sounds.class.getResourceAsStream("title1.wav").toString());
} catch (MalformedURLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
BigClip clip = new BigClip();
AudioInputStream ais = null;
try {
ais = AudioSystem.getAudioInputStream(url);
} catch (UnsupportedAudioFileException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
clip.open(ais);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (LineUnavailableException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
clip.start();
JOptionPane.showMessageDialog(null, "BigClip.start()");
clip.loop(4);
JOptionPane.showMessageDialog(null, "BigClip.loop(4)");
clip.setFastForward(true);
clip.loop(8);
// the looping/FF combo. reveals a bug..
// there is a slight 'click' in the sound that should not be audible
JOptionPane.showMessageDialog(null, "Are you on speed?");
}
当我只使用title1.wav时,我得到以下错误:
java.net.MalformedURLException: no protocol: java.io.BufferedInputStream
当我添加协议文件://时,我得到了一个NullPointerException,尽管我看不出是什么导致了它
我是否使用了错误的协议,或者我是否做了其他错误的事情?提前谢谢 假设您的文件与Sounds类位于同一个包目录中,请使用
url = Sounds.class.getResource("title1.wav");
因为
new URL(Sounds.class.getResourceAsStream("title1.wav").toString())
只是注定不起作用。您正在调用InputStream实例上的toString
NPE发生的原因可能是AudioSystem.getAudioInputStream由于错误的URL路径而失败,因此ais为null,BigClip将NPE从open中抛出。谢谢,它现在运行良好!为什么BigClip会导致音频开始、停止、再次播放开始、继续播放和出现故障?我对BigClip不太熟悉。如果你指的是@AndrewThompson,你可能会问一个新问题,引起他的注意。在他的答案中添加一个链接,或者像我刚才那样点击他。虽然可能是由其他人负责的。