【问题标题】:Export MP3 file with JAR file using JLayer (JZoom) API使用 JLayer (JZoom) API 导出带有 JAR 文件的 MP3 文件
【发布时间】:2015-03-26 00:54:05
【问题描述】:

我正在使用 JLayer(JZoom) API 在我的 java 应用程序中播放 mp3 文件。

这是我实现的代码,我创建了一个方法,然后稍后调用它,它工作正常:

public void playMusic() {
        try{
            FileInputStream fis = new FileInputStream("myfilepath/file.mp3");
            Player playMP3 = new Player(fis);
            playMP3.play();
        }
        catch(Exception exc){
            exc.printStackTrace();
            System.out.println("Failed to play the file.");
        }
    }

当我导出一个可运行的 JAR 文件时,该文件不包括在内。我还将 MP3 文件包含在我的应用程序的 SRC 文件夹中的资产文件夹中。

为了在导出到可运行的 JAR 文件时包含 MP3 文件,我可以做些什么不同的事情?

【问题讨论】:

  • 使用getClass().getResourceAsStream("myfilepath/file.mp3")从Jar文件中加载资源

标签: java jar


【解决方案1】:

不能使用FileInputStream从 JAR 文件中加载资源,因为 JAR 文件中的资源不是文件。

用途:

InputStream in = YourClassName.class.getClassLoader().getResourceAsStream("myfilepath/file.mp3");

假设 JAR 文件内的路径为 myfilepath/file.mp3YourClassName 是 JAR 文件内任何类的名称。

【讨论】:

  • 感谢您的回答,但是当我实施您的解决方案时,会引发以下错误:java.lang.NullPointerException: in at javazoom.jl.decoder.Bitstream.(Unknown Source)
  • @mario.borg in 为空吗?如果是这样,那么路径是错误的。
  • Yes in 为空。我将文件放在 SRC 文件夹中的资产文件夹中并说明完整路径。您能建议放置 MP3 文件的最佳方式吗?
  • @mario.borg JAR 中的资源 在哪里?它不关心它来自哪里。如果您不知道,请在 7-Zip 或 WinRAR 中打开 JAR 并找出答案。
  • 有趣的是,JAR 文件中没有添加 MP3。我怎样才能确保这是被添加的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-21
  • 2013-05-28
相关资源
最近更新 更多