【问题标题】:Jar with compressed music with java?用java压缩音乐的jar?
【发布时间】:2011-02-09 08:52:03
【问题描述】:

我尝试将音乐添加到我制作的应用程序中。首先,我尝试使用 .wav 文件,尽管它们变得如此巨大以至于应用程序变得太大而无法上传到任何地方。

所以我将文件更改为 .mp3,尝试了 JMFJLayer,尽管它们都不能在可运行的 jar 上工作(即使在我没有导出它们时它们也能正常工作)。

那么有人知道如何使用可运行的 jar 播放压缩音乐吗?

这是 JLayer 的代码,导出后它会在 f = new File(u.toURI()) 处停止工作,而不会引发任何异常...

try {

    URL u = cl.getResource("New Beginnings.mp3");
    f = new File(u.toURI());

} catch (URISyntaxException e1) {
    e1.printStackTrace();
}

try {

    FileInputStream fis = new FileInputStream(f);
    p = new Player(fis);
    p.play();

} catch (Exception e) {
    System.out.println(e);
}

编辑:已将上述代码更改为:

try {

      InputStream fis = ClassLoader.getSystemClassLoader().getResourceAsStream(temp+".mp3");
      p = new Player(fis);
      p.play();

   } catch (Exception e) {
      System.out.println(e);
   }

【问题讨论】:

    标签: java jar mp3 jlayer


    【解决方案1】:

    你把声音文件放在哪里了?

    你应该在你的项目中创建一个新的包并将资源放在那里,然后通过发送一个完整的路径来读取文件:

    例如。创建一个名为sounds的新包,然后:

      InputStream fis = ClassLoader.getSystemClassLoader().getResourceAsStream("/sounds/"+temp+".mp3");
      p = new Player(fis);
      p.play();
    

    说实话,我没有用声音尝试过,但是当我使用图像时,这个问题就发生在我身上。我把它们放在一个包裹里,一切都很好..

    【讨论】:

    • 您不必在项目中创建新包,只需将其放在 src 中就可以了。如前所述,我在更改代码时修复了它,我忘记了不允许在 jar 中创建新文件。 :o
    • @Skarion 如果 mp3 文件在 jar 之外,如何播放?我的应用程序是一种音乐播放器。
    • @Skarion jFileOpener 或其他任何名称,获取 URL,并将其发送给播放器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多