在哪里放置相对于 java 项目的声音文件?
Posted
技术标签:
【中文标题】在哪里放置相对于 java 项目的声音文件?【英文标题】:where to place sound files relative to a java project? 【发布时间】: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
。
【参考方案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
。
【讨论】:
同意。在 Java 7 中,在 getResource() 中使用 URL 更为重要。我在这里遇到了类似的问题:***.com/questions/8091967/…以上是关于在哪里放置相对于 java 项目的声音文件?的主要内容,如果未能解决你的问题,请参考以下文章