【问题标题】:where to place sound files relative to a java project?在哪里放置相对于 java 项目的声音文件?
【发布时间】:2011-12-13 03:25:06
【问题描述】:

这是我第一次实现声音,但我不知道在哪里实际放置声音来播放它们。我使用 Eclipse 作为我的 IDE,我已经将我的声音放在一个名为 sound 的文件夹中。

以下代码是我用来创建音频剪辑对象之一的代码:

private final String background = "." + slash + "sounds" + slash + "background.wav";

main(....){
    try {
        backgroundClip = Applet.newAudioClip(new File(background).toURI().toURL());
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

我什么也没听到。当我删除 try/catch 时,我收到一条错误消息,提示它无法找到该文件。我将声音文件夹放在/src/bin 中,但都找不到。我把它放在哪里?

【问题讨论】:

  • 1) String background = "." + slash + .. 如果slash 的值为/ 是错误的。如果值为System.getProperty("file.separator"),则应将其称为separator(或类似名称)。但是File 的构造函数可以为您完成所有这些工作。 2) 从 Java 1.3 开始,J2SE 提供了javax.sound.sampled API。使用它而不是 AudioClip

标签: java audio javasound


【解决方案1】:

您的项目的基础是src 文件夹上方的级别。所以使用. 会将你放在你的项目文件夹中。

基本上,

. = project_root

./src = default_package
./src/packagename = inside the package named "packagename"

./sounds/background.wav = a .wav file in the sounds folder, in the project_root

使用您当前的路径,您需要将您的.wav 文件放入sounds 文件夹中的project_root

路径最终会是project_root/sounds/background.wav

【讨论】:

  • 什么?不是“。”指的是当前执行的文件夹?
  • 是的。执行发生在project_base。我之前花了几天时间试图弄清楚这一点,这就是我的结果。
【解决方案2】:

请参阅this thread 以了解为什么应用程序资源应该通过从getResource() 获得的URL 获取,而不是从File 转换为URL

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-01
  • 2015-04-25
  • 2016-01-10
  • 1970-01-01
  • 1970-01-01
  • 2012-05-14
相关资源
最近更新 更多