【问题标题】:JavaFX play mp3JavaFX 播放 mp3
【发布时间】:2015-01-05 12:58:02
【问题描述】:

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

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

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

【问题讨论】:

    标签: java javafx mp3


    【解决方案1】:

    如果你在 linux 上(看起来你来自你的堆栈跟踪)。您需要安装 libavformat53 和 libavcodec53 才能使 javafx 的 MediaPlayer 工作,否则您将收到该错误。

    【讨论】:

    • 你如何在 Fedora 上做到这一点? (似乎您现在可以回答自己的问题:stackoverflow.com/questions/27475902/…
    • 在 Fedora 上有点棘手。我需要手动查找并安装 libavcodec53 及其所有依赖 rpm,因为以前版本的 libav 库不再包含在官方存储库中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多