我一直在测试一个可以在PC和Android平台上运行的Java库,前几天有人告诉我使用JLayer。今天我很高兴地编码,然后这个异常出现了:
java.lang.ExceptionInInitializerError
at javazoom.jl.decoder.SynthesisFilter.load_d(Unknown Source)
at javazoom.jl.decoder.SynthesisFilter.<init>(Unknown Source)
at javazoom.jl.decoder.Decoder.initialize(Unknown Source)
at javazoom.jl.decoder.Decoder.decodeFrame(Unknown Source)
at javazoom.jl.player.Player.decodeFrame(Unknown Source)
at javazoom.jl.player.Player.play(Unknown Source)
at javazoom.jl.player.Player.play(Unknown Source)
at Main.Play(Main.java:23)
at Main.main(Main.java:164)
Caused by: java.io.IOException: unable to load resource 'sfd.ser'
at javazoom.jl.decoder.JavaLayerUtils.deserializeArrayResource(Unknown Source)
... 9 more
我试着用谷歌搜索这个异常的原因,但没有结果,所以我来这里请求你的帮助。
这是我试图播放音频文件的函数:
public static void Play()
{
try
{
InputStream fis = new FileInputStream("L://POO//MyWS//WakeUp!//Back in black.mp3");
Player p = new Player(fis);
p.play();
}
catch(FileNotFoundException e)
{
e.printStackTrace();
}
catch (JavaLayerException e)
{
e.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}
catch(ExceptionInInitializerError e)
{
e.printStackTrace();
}
}
提前感谢!: D
最后我使用JLayer 1.0,它像一个魅力,你可以从这里得到它。这是我在这里找到的一个示例代码。
EDIT:在Eclipse中,如果错误一直显示,将您的工作空间更改为一个新的
JLayer的版本对我来说并不重要。
在我的例子中,导入javazoom.jl.player.Player是不够的。在将应用程序构建到jar中时,我确实包含了jl1.0.1.jar,但是我还必须确保在构建文件的文件集目录中包含javazoom。