【发布时间】:2016-01-23 12:16:05
【问题描述】:
我有一个使用 Gradle 文件构建的 javafx 项目,我在 Intellij 中编写所有内容。在其中,我使用 javafx.scene.media.Media 和 javafx.scene.media.MediaPlayer 播放一些音乐。
public SoundPlayer(String filename) {
String soundLocation = "\\src\\main\\resources\\sound\\" + fileName;
String absolute = new File("").getAbsolutePath() + soundLocation;
System.out.println(absolute);
Media soundMedia = new Media(new File(absolute).toURI().toString());
mediaPlayer = new MediaPlayer(soundMedia);
}
我一直在工作的项目目录是:
src/
|---主要/
|---|---java/
|---|---|---sound.SoundPlayer
|---|---资源/
|---|---|---声音/
|---|---|---|---click.mp3
|---|---|---|---bgm.mp3
但是,当我去编译并将其转换为 jar 文件时,Gradle 将目录更改为这个(在 jar 文件中,顶层):
声音/
|---SoundPlayer.class
|---click.mp3
|---bgm.mp3
这使它引发了媒体异常:媒体不可用。我尝试将文件更改为以下两种:
Media soundMedia = new Media(new File("sound\\" + fileName).toURI().toString());
和
Media soundMedia = new Media(new File(fileName).toURI().toString());
...但我总是遇到同样的异常。怎么回事?
【问题讨论】:
-
你也可以分享你的gradle构建文件