JavaFx播放声音文件

JavaFx播放声音文件,java,javafx,Java,Javafx,我正在尝试播放一个.wav文件,每次按下鼠标,程序都会正常启动,但当我点击精灵时,我发现一个错误,有人知道是什么问题吗?我正在使用IntelliJ,SDK 15 这是我尝试播放声音的部分 private void onClick() { state = 1; Game.lowersc(); AudioClip audioClip = new AudioClip(Paths.get("src/space.wav").toUri()

我正在尝试播放一个.wav文件,每次按下鼠标,程序都会正常启动,但当我点击精灵时,我发现一个错误,有人知道是什么问题吗?我正在使用IntelliJ,SDK 15

这是我尝试播放声音的部分

private void onClick() {
        state = 1;
        Game.lowersc();
        AudioClip audioClip = new AudioClip(Paths.get("src/space.wav").toUri().toString());
        audioClip.play(50);
    }
我得到这个错误:


class com.sun.media.jfxmediaimpl.NativeMediaManager(在未命名模块@0x3460c88d中)无法访问class com.sun.glass.utils.NativeLibLoader(在模块javafx.graphics中),因为模块javafx.graphics不会将com.sun.glass.utils导出到未命名模块@0x3460c88d

可能是软件包的问题。我很抱歉在我不确定的时候使用这个答案空间,但是它有点长,不适合在评论中使用。 在
src
内部创建一个名为
module info.java
的文件,并在
src
内部创建一个包:

src{
   packagename{all your files here}
   module-info.java
}
这不是实际的代码,只是文件结构的外观。 module-info.java如下所示:

module packagename {
    requires javafx.controls;
    requires javafx.fxml; 
    exports packagename;
}

packagename
替换为实际名称,将
requires __
替换为项目所需的东西(?我不知道如何称呼它们)。如果您不知道,您可以保留这些,如果您的IDE允许,还可以添加其他内容。

因此,我只是忘了将javafx.media添加到我的虚拟机选项中,谢谢您的帮助:D

谢谢您的帮助,但是现在已经太晚了,所以我今天就退出,明天再回来告诉您是否有效:D,但它很可能与packpagesWell有关,错误是什么?如果你得到一个错误,它可能是非常方便知道什么是错误。一些提示:JavaFX当然不支持任何可用的文件格式。您可以签入
媒体
包:另外,这是
javafx.media
模块的一部分。根据您使用的路径(
“src/space.wav”
),您拥有的不是文件,而是资源。不要使用标准文件API访问资源。您应该使用类似
getClass().getResource(“/space.wav”).toString()
的东西(即不一定完全使用)。但是请注意,除了访问资源的方式之外,您可能还有其他问题。有关更多信息,请参阅com.sun.media.jfxmediaimpl.nativemediamanamanager类(在未命名模块@0x3460c88d中)无法访问com.sun.glass.utils.NativeLibLoader类(在模块javafx.graphics中)由于模块javafx.graphics不会将com.sun.glass.utils导出到未命名模块@0x3460c88d,因此这是您下一个问题的一些注意事项:a)提供一个演示,说明什么不符合预期b)对问题进行澄清(与注释相比)@LukášPivka我很高兴您找到了解决方案。基于你所描述的错误,我已将此问题作为重复问题结束。但是,我之前关于如何访问资源的评论仍然有效。