java - 如何在程序运行时播放背景音乐?在java中

标签 java audio package

我正在制作一款纸牌游戏,快完成了。我想做的最后一件事就是播放一些背景音乐。现在,如果我将文件复制到默认包中并制作游戏的单个 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/

相关文章:

java - 在 Java 中使用 Jackson 反序列化 Json 对象

java - 由于缺少 GenericArrayType 而从 Java6 升级到 Java7 时出现 ClassCastException

java - 使用音频信号创建随 secret 钥

audio - 最佳的跨平台音频库,用于同步音频播放

audio - 如何使 PGraphics 充满点(白色等级基于幅度)和不断变化的弧线的纹理?

java - Jersey 在部署为 JAR 时找不到资源,但可以在 Eclipse 中使用

java - Bukkit:从配置文件获取数据返回 null

java - 从子文件夹外部导入java中用户定义的包

Delphi BPL 搜索路径

Android 包名称不是有效的包名称