我遇到了有关音频的问题。
我正在使用 Netbeans 用 Java 进行编码,并且我想导出我的项目,以便它不需要 Netbeans 来运行,因此我决定创建一个 JAR 文件。我将程序的所有图像和音频文件 (aiff) 放在 src 文件夹中,以便可以从编码控制台外部访问它们。
我已将 InputStream 和 AudioStream 声明为全局变量,并且在 try catch block 中使用它们,在单击按钮时运行代码。
AudioPlayer.player.stop(audios);
try{
in = new FileInputStream (new File("src/glory.aiff"));
System.out.println("Button Clicked");
audios = new AudioStream (in);
AudioPlayer.player.start(audios);
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, e);
}
当我在 Netbeans 上运行该程序时,此代码完全正常,但是当我创建 JAR 文件时,音频无法播放,并且会弹出错误,提示找不到该文件。我在我的电脑和其他电脑上都试过了,也出现同样的问题。
我觉得奇怪的是,我之前提到的图片位于同一个 SRC 文件夹中,并且它们显示正确。我通过使用图标链接了这些图片,Netbeans 会自动生成代码。
jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/IMG_2138.JPG")));
我自己做了研究,但是其他遇到此问题的人似乎没有使用与我相同的 AudioStream,我不知道如何调整它来解决我的问题!我还尝试过更改音频的文件路径,但每当它在 Netbeans 中工作时,它在我的 JAR 文件中就不起作用。
有人可以告诉我如何解决这个问题吗?
谢谢
罗汉
最佳答案
我认为在 Netbeans 中为 Java 程序创 build 置会更容易,并且它仍然可以在没有 Netbeans 的情况下运行。
您可以使用名为 excelsior jet 的软件来执行此操作。
您需要做的就是在 YouTube 上观看一段 5 分钟的简短视频,了解如何使用此功能,然后您就可以将设置安装到您的计算机和其他计算机中。
此外,在使用该软件进行设置之前,最好检查一下您的程序是否确实作为 jar 文件正常运行。
为此,只需转到保存 Netbeans 项目的位置,单击程序的项目,然后进入“dist”文件夹(这是存储项目的 jar 文件的位置)。点击jar文件,查看项目是否正常运行。
如果您在 dist 文件夹中找不到 jar 文件,那么很可能是因为您篡改了 java 项目中的“manifest.mf”文件或“build.xml”文件。
关于java - JAR 文件中的音频无法播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34331953/