JavaFX播放mp3

JavaFX播放mp3,java,javafx,mp3,Java,Javafx,Mp3,当我运行我的方法时,我得到一个MediaException。我使用playSound(“src/assets/timeup.mp3”)调用该方法 日志: src/assets/timeup.mp3 文件:/media/chris/1%20TB%20Data/Eclipse/workspace/dregtimer/src/assets/timeup.mp3 线程“main”media异常:未知:com.sun.media.jfxmedia.media异常:无法创建播放机!:com.sun.medi

当我运行我的方法时,我得到一个
MediaException
。我使用
playSound(“src/assets/timeup.mp3”)调用该方法

日志:

src/assets/timeup.mp3
文件:/media/chris/1%20TB%20Data/Eclipse/workspace/dregtimer/src/assets/timeup.mp3
线程“main”media异常:未知:com.sun.media.jfxmedia.media异常:无法创建播放机!:com.sun.media.jfxmedia.media异常:无法创建播放机!
位于javafx.scene.media.MediaException.exceptionToMediaException(MediaException.java:146)
位于javafx.scene.media.MediaPlayer.init(MediaPlayer.java:511)
位于javafx.scene.media.MediaPlayer。(MediaPlayer.java:414)
at timer.timer.playSound(timer.java:53)
timer.timer.(timer.java:58)
at timer.timer.main(timer.java:39)
原因:com.sun.media.jfxmedia.media异常:无法创建播放机!
在com.sun.media.jfxmediainpl.NativeMediaManager.getPlayer上(NativeMediaManager.java:222)
在com.sun.media.jfxmedia.MediaManager.getPlayer上(MediaManager.java:104)
位于javafx.scene.media.MediaPlayer.init(MediaPlayer.java:467)
... 4更多

我的项目位于外部驱动器上,我正在使用符号链接将其链接到主驱动器。我正在主驱动器上运行Eclipse。不过,我不认为这会导致任何问题。

如果您使用的是linux(看起来您来自stacktrace)。您需要安装libavformat53和libavcodec53,javafx的MediaPlayer才能正常工作,否则会出现错误

戴软呢帽你是怎么做到的?(似乎你现在可以回答你自己的问题:)戴软呢帽有点棘手。我需要手动查找并安装libavcodec53及其所有依赖关系RPM,因为以前版本的libav库不再包含在官方存储库中。
private void playSound(String path) {
        System.out.println(path);
        Media hit = new Media(new File(path).toURI().toString());
        System.out.println(hit.getSource());
        MediaPlayer mediaPlayer = new MediaPlayer(hit);
        mediaPlayer.play();
    }
src/assets/timeup.mp3
file:/media/chris/1%20TB%20Data/Eclipse/workspace/DrEggTimer/src/assets/timeup.mp3
Exception in thread "main" MediaException: UNKNOWN : com.sun.media.jfxmedia.MediaException: Could not create player! : com.sun.media.jfxmedia.MediaException: Could not create player!
    at javafx.scene.media.MediaException.exceptionToMediaException(MediaException.java:146)
    at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:511)
    at javafx.scene.media.MediaPlayer.<init>(MediaPlayer.java:414)
    at timer.Timer.playSound(Timer.java:53)
    at timer.Timer.<init>(Timer.java:58)
    at timer.Timer.main(Timer.java:39)
Caused by: com.sun.media.jfxmedia.MediaException: Could not create player!
    at com.sun.media.jfxmediaimpl.NativeMediaManager.getPlayer(NativeMediaManager.java:222)
    at com.sun.media.jfxmedia.MediaManager.getPlayer(MediaManager.java:104)
    at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:467)
    ... 4 more