当前位置: 首页 > 知识库问答 >
问题:

JavaFX在JAR中找到媒体文件,但不会播放?

姬高澹
2023-03-14

我的项目在Eclipse中可以很好地播放音频文件,但当我打包到JAR文件时,打包在JAR中的音频文件将无法播放。

奇怪的是,JavaFX似乎很好地找到了这个文件。

我这样实例化玩家:

    myClass.mediaPlayer = new MediaPlayer(new Media(
            myClass.getClass().getResource("/audio/file.wav").toString()));

我的调试字符串如下所示:

    System.out.println(mediaPlayer.getMedia().getDuration() + " "
                       mediaPlayer.getMedia().getSource())

在eclipse中,它工作正常,并显示文件URL:

358.049887 ms file:/home/username/path/to/project/bin/audio/file.wav 

从JAR运行时,它会显示JAR URL:

358.049887 ms jar:file:/home/username/path/to/project.jar!/audio/file.wav

所以它必须定位文件,因为当从JAR运行时,它正确地报告了持续时间,但它不会播放,也不会引发异常。我还注意到,球员似乎从未达到“准备就绪”的状态。

我用JAR文件打包了一个独立的JRE,但我在eclipse和JAR打包(1.8.092)中使用了相同的Java版本。

我还注意到,我使用的是相同的getClass()。getResource()方法来加载我随应用程序打包的按钮图标,这在eclipse和JAR中都可以很好地工作。

共有1个答案

姚嘉容
2023-03-14

我不知道这是否是一个错误;它似乎是一个。

然而,播放类似您所拥有的短音的预期方法是使用音频剪辑,而不是媒体播放器。这是一个重量轻得多的类,适用于非常短的声音文件。

 类似资料:
  • 我正在编写一个基本的android mp3播放器应用程序,它使用MediaPlayer应用程序播放本地存储在Android手机上的mp3文件。 但是,每当我尝试调用时,我都会得到一个。 我已经检查以确保mp3在正确的路径中,我已经尝试在模拟的Android和我自己的手机上运行它,但我一直得到同样的错误。 下面是我得到的错误: /storage/emulated/0/DownloadFileInpu

  • 问题内容: 我正在使用的音频文件位于以下位置:http : //www.orangefreesounds.com/loud-alarm-clock-sound/ 这是我在Eclipse IDE中的文件结构: 我的文件结构是什么样的 当我在IDE中运行该音频文件时,它的播放效果非常好,但是当 将其导出为JAR文件时,该文件却不能正常播放。我已经检查并发现音频文件 在JAR文件中。 我正在使用终端命令

  • 我有一个程序,必须从终端界面播放声音。 代码相当简单,如下所示: 该文件位于“我的源路径”中的“音乐”文件夹中。 当我在eclipse中运行程序时,所有工作都非常好。但是如果我将其导出到. jar文件中并在windows cmd中尝试它,我会收到这条消息 [编辑]音频文件确实已打包到中。jar,但它仍然不起作用。 是否有可能播放来自windows提示符的声音?如果没有,是否有这样的声音? 谢谢Si

  • 这可能不是一个可以接受的问题,但我现在非常绝望。 我需要一个同步java媒体播放器与快速寻找和平衡修改。 脚本: 我有一个javaFX项目,我必须在循环中播放一个非常短(50-100毫秒)的媒体文件。问题是,在重新启动之前,我需要等待一些要求。 简而言之:播放声音- javafx提供了一个我修改过的媒体播放器。 如果有人能为我指出正确的方向(图书馆/我错过的东西),我将不胜感激 ps允许的java

  • 媒体播放器类很好。然而,我无法播放存储在另一个类中的mp3文件(当鼠标单击时)。有人能检查我的密码吗? 这是我尝试用来播放音频文件的类: 当我运行程序时(在下面勾选的鼠标上),我得到了以下两个错误:错误1:线程“AWT-EventQueue-0”java.lang中的异常。不支持的操作异常:尚未实现错误2:线程“thread-3”java.llang中的例外。IllegalStateExcepti

  • 当我使用MediaPlayer播放mp3文件时,系统会报告错误日志:。但是RealPlayer是正常的。 我发现它的错误只发生在更高的ROM版本。像4.0版本一样,它有错误。在2.3版中,它没有这个错误。 代码: 日志猫错误: