我为测试游戏创建了一个简单的登录屏幕,它播放.mid音乐曲调。将鼠标悬停在按钮上时会播放.wav声音。当我构建+编译程序时,两个声音都在netbeans中播放。当我在netbeans之外运行.jar文件时,它不起作用。任何建议......
P.S。声音位于src文件夹内的文件夹中,称为资源。对于.mid音乐,我使用序列,对于.wav,我使用AudioInputStream等。
答案 0 :(得分:1)
您最有可能尝试访问应用程序资源,就好像它们是File
一样。应用程序资源通常位于Jar文件中,并且必须由URL
访问。要形成URL,请使用以下内容:
URL urlToMid = this.getClass().getResource("the.mid");
如果情况并非如此,则下一个最可能的问题是该资源未包含在Jar中。
答案 1 :(得分:0)
没有代码示例,很难帮助你。你有例外吗?
我的猜测是,在NetBeans之外运行时,您的应用程序无法找到音乐文件。从NetBeans运行时,您的主目录必须设置为某个值(可能指向您的src / resource文件夹),但在NetBeans外部运行时,您指定了不同的主位置(或根本没有)。
答案 2 :(得分:0)
如果生成的.jar文件中包含 文件,则另一个可能的问题是区分大小写。如果文件是从常规文件系统加载的(例如,从NetBeans中加载),则它取决于操作系统的文件系统,如果文件名是区分大小写的。在Windows上它不是。
通过类加载器加载文件后(例如使用getResource()),文件名区分大小写,Alert.wav
与alert.wav
不同。
确保源代码中的文件名完全与文件系统中显示的文件名相同。