【问题标题】:sound in Eclipse, but no sound in runnable JAR file在 Eclipse 中有声音,但在可运行的 JAR 文件中没有声音
【发布时间】: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

标签: java eclipse jar


【解决方案1】:

在您的“src”文件夹之外创建一个单独的文件夹,例如“res”,并将您的文件保存在其中,并使用 URL 引用您的文件:

URL url = <NameOfClass>.class.getResource("/progress_bar.wav");

然后通过右键单击项目>构建路径>配置构建路径>源>添加文件夹>检查“res”来配置您的构建路径,按确定,然后再次按确定,然后再次尝试导出项目。

改变

in = new FileInputStream(soundFile);

in = new FileInputStream(url);

【讨论】:

  • 然后,如何调用url?
  • in = new FileInputStream(url);
  • 文件的路径是字符串
  • url的类型是URL,soundFile的类型是String。
  • 尝试返回字符串的 url.getPath()
【解决方案2】:
  1. 在您的项目中创建“文件夹源”。右键单击您的项目并找到这样的文件夹。

  2. 通过拖动将您的 wav 文件放入文件夹源中。但直接在您的 IDE 中。

  3. 编译您的项目并保存。

现在,当您打开工作 IDE 文件夹(保存文件夹)时,您的 wav 文件应该在您的源文件夹和 bin 文件夹中,没有其他地方。不要将文件/s 放入 bin 文件夹。运行程序时会自动添加。

注意:像这样调用您的 wav 文件到您的 Java 项目:“WAV 文件的名称.wav”;

不需要文件的路径。

当您的可执行 jar 文件被保存时,请尝试从源中删除您的 wav 文件。检查它是否像那样工作。应该可以让它在其他设备上运行...

编辑:也许声音在 IDE 中不起作用,但作为保存的 jar 文件,它会...要在您的 IDE 中工作,请将 wav 文件复制到工作区文件夹中,但在您想要导出时将其删除...

我使用 Eclipse,让它工作起来有点棘手,但一旦完成它就完成了。取决于哪个库使用它...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多