我正在制作一款纸牌游戏,快完成了。我想做的最后一件事就是播放一些背景音乐。现在,如果我将文件复制到默认包中并制作游戏的单个 jar 文件,音乐会在所有计算机上播放吗?目前,在我的电脑上,通过为文件提供特定路径(如 "C:\\samp.wav";
),它可以毫无问题地运行。但我担心如果我制作一个jar文件并在另一台PC上运行它将无法正常工作。我认为会有一个FileNotFoundException
。我是对还是错?
对于卡片的图像,我使用这一行:
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/1.jpg")));
我已将这些图片插入到我的默认包中。我想对音乐文件做同样的事情,但是怎么做呢?我正在使用 NetBeans。
最佳答案
您应该将 wav 文件包含在应用程序 jar 中。这样您就不必管理用户文件系统中的文件副本(请记住,例如,在 UNIX、Mac 等中,您无法通过 C:/...
访问硬盘驱动器)。
例如,如果您将 wav 文件放在应用程序 jar 的根目录中 (app.jar/samp.wav
):
InputStream is = getClass().getClassLoader().getResourceAsStream("samp.wav");
或者,如果您的应用程序 jar 根目录中有一个“声音”目录 (app.jar/sounds/samp.wav
):
InputStream is = getClass().getClassLoader().getResourceAsStream("sounds/samp.wav");
检查this post有关使用 Java 播放 wav 文件的更多信息(尽管对于您的问题,我认为您已经解决了这个问题)。也可以考虑在单独的线程中播放它。另请检查this web for examples关于用 Java 管理媒体文件。
关于java - 如何在程序运行时播放背景音乐?在java中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13573281/