2

我有一个 mp3 文件,我试图从 eclipse (java) 中的源包播放,由于某种原因,当我在 eclipse 中运行它时它可以正常播放,但是当我尝试从 .jar 播放它时它不播放。图像显示正常,但声音没有,我想我可能需要像图像文件一样重新编码声音文件,但我不确定图像的代码如何:

JLabel TextBox = new JLabel(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/Images/TextBox.png"))));

和声音

Player player = Manager.createPlayer(new MediaLocator(getClass().getClassLoader().getResource("Sounds/Bonsai.mp3")));

提前致谢!

4

2 回答 2

1

这:

getClass().getClassLoader().getResource(....)

确实返回了一个 URL。但是 MediaLocator 不能使用 jar:file:/ 形式的 URL

我建议将文件从 jar 复制到“临时”文件系统并从那里流式传输。如果需要,您可以在完成后将其删除。

于 2012-10-28T20:35:49.537 回答
1

尝试将资源作为流获取。您可以通过这种方式检索文件。

InputStream fis = 
    ClassLoader.getSystemClassLoader().getResourceAsStream("/Sounds/bonsai.mp3");
p = new Player(fis);
p.play();
于 2012-10-28T20:39:13.543 回答