Java 从项目地图中播放文件
我正在用netbeans(不适用于android)制作一个Java音乐播放器应用程序。我们在项目中创建了一个资产文件夹,其中包含音乐播放器应该播放的歌曲。我们所有的功能都在工作,除了我们不知道如何从项目地图中调用歌曲。我们现在已经把它硬编码到一个特定的位置,但在不同的计算机上是行不通的Java 从项目地图中播放文件,java,netbeans,Java,Netbeans,我正在用netbeans(不适用于android)制作一个Java音乐播放器应用程序。我们在项目中创建了一个资产文件夹,其中包含音乐播放器应该播放的歌曲。我们所有的功能都在工作,除了我们不知道如何从项目地图中调用歌曲。我们现在已经把它硬编码到一个特定的位置,但在不同的计算机上是行不通的 是否有人提供了解决方案,以便我们可以从项目地图中调出歌曲?鉴于您的项目中有一个资产文件夹,您可以执行以下操作: initializeAudio("Assets/my_cool_song.wav"); 其中,in
是否有人提供了解决方案,以便我们可以从项目地图中调出歌曲?鉴于您的项目中有一个
资产
文件夹,您可以执行以下操作:
initializeAudio("Assets/my_cool_song.wav");
其中,initializeAudio
依赖于Clip
对象的类级声明:
private void initializeAudio(final File url) {
try {
if (clip != null) stopPlay();
AudioInputStream inputStream = AudioSystem.getAudioInputStream(url);
clip = AudioSystem.getClip();
clip.open(inputStream);
} catch (Exception e) {
stopPlay();
System.err.println(e.getMessage());
}
}
这在所有带有项目(或JAR)的计算机上都有效,并且initializeAudio(“/Users/myusername/Developer/Projects/AudioApp/Assets/my_cool_song.wave”)代码>不起作用是因为一个依赖于硬编码的绝对路径,而另一个依赖于相对于项目结构的文件路径。创建相对路径时,假设项目的基本目录是所有存在的目录
因此,例如,如果您的项目结构是一个MyProject
文件夹,其中包含子文件夹Assets
、src
、bin
和util
,并且您希望引用util
文件夹中的某些项,按如下方式传递路径:util/my_cool_file.jpeg
我不太清楚您的意思,但是可以由用户定义的属性文件呢?你可以在属性文件中设置歌曲的路径,然后从应用程序中加载。我想你正在寻找。如果我理解正确的话,你只需要找到音乐的相对路径。