【发布时间】:2015-08-20 07:08:05
【问题描述】:
当我在 Eclipse 中运行应用程序时,声音播放良好,但如果我将应用程序导出到可运行的 jar,声音就不起作用。
我在网上搜索了很多,他们都使用getResourceAsStream,但我没有找到FileInputStream的解决方案。
jar 文件中progress_bar.wav 位于根目录,但即使soundFile = "progress_bar.wav" 也不起作用。
源
--控制器
----FileManager.java
--res
----progress_bar.wav
public void display_L11_errors(final JProgressBar pBar, String... args) throws IOException
{
String soundFile = "res/progress_bar.wav";
InputStream in;
AudioStream audioStream = null;
try {
in = new FileInputStream(soundFile);
audioStream = new AudioStream(in);
AudioPlayer.player.start(audioStream);
} catch (IOException e1) { e1.printStackTrace(); }
//for loop
AudioPlayer.player.stop(audioStream);
}
哪位大神给个答案?
编辑: 正如@greg-449 告诉我的,Jar 中的条目不是文件,因此您不能使用 FileInputStream 访问它们。
解决方案:
AudioStream audioStream = null;
audioStream = new AudioStream(FileManager.class.getResourceAsStream ("/progress_bar.wav"));
AudioPlayer.player.start(audioStream);
//for loop
AudioPlayer.player.stop(audioStream);
【问题讨论】:
-
Jar 中的条目不是文件,因此您不能使用 FileInputStream 访问它们。
-
好的,我将编辑我的帖子,并使用“getResourceAsStream”找到解决方案。谢谢@greg-449