如何在netbeans之外播放.wav或.mid文件?

时间:2011-10-17 20:38:51

标签: java netbeans jar wav midi

我为测试游戏创建了一个简单的登录屏幕,它播放.mid音乐曲调。将鼠标悬停在按钮上时会播放.wav声音。当我构建+编译程序时,两个声音都在netbeans中播放。当我在netbeans之外运行.jar文件时,它不起作用。任何建议......

P.S。声音位于src文件夹内的文件夹中,称为资源。对于.mid音乐,我使用序列,对于.wav,我使用AudioInputStream等。

3 个答案:

答案 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.wavalert.wav不同。

确保源代码中的文件名完全与文件系统中显示的文件名相同。