我正在尝试使用我刚发现(JLayer)的整齐库来播放mp3文件,并且在编译时(在Netbeans中)使用此代码可以正常工作:文件输入流在编译器中正常工作,但在编译后无法工作
ClassLoader cl = this.getClass().getClassLoader();
url = cl.getResource("music/45.mp3");
pin = new FileInputStream(url.getFile());
p = new Player(pin);
p.play();
我建立了我的项目,并试图运行可执行jar。我扩展了JFrame,以便可以直观地看到我的程序正在运行。框架在执行时出现,但没有声音。我虽然使用类加载器将解决这个问题,但没有运气。帮助将不胜感激!
好吧有道理。为了理解FileInputStream在这种情况下的功能:假设我将可执行jar放在一个名为“player”的文件夹中,并将另一个文件夹放在“player”中称为“media”。然后,我会让该程序在相对位置的jar文件之外寻找名为“media”的文件夹。 FileInputStream会适用于那么? –
@DillonBurton:不,因为MP3资源*不是文件*。它包含在一个jar文件中。 'FileInputStream'从磁盘上的文件中读取数据 - 不是*文件内嵌入的东西。 –
好吧,真的清除了事情。谢谢,先生,+1。 –