【问题标题】:Javafx can't play mp3 file with MediaException on ubuntu 20Javafx 无法在 ubuntu 20 上播放带有 MediaException 的 mp3 文件
【发布时间】:2021-10-07 05:08:04
【问题描述】:
  1. 配置:ubuntu 20,javafx 11,jdk15,语言级别 8
  2. 问题:mp3文件可以直接在ubuntu上播放,但是下面的代码不能播放,但是该代码可以播放*.wav和*.aiff音频文件,除了mp3:
    Media media = new Media(new File("assets/audios/shoot.mp3").toURI().toString());
        MediaPlayer mediaPlayer = new MediaPlayer(media);
        mediaPlayer.play();
  1. 例外:
    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:518)
    at javafx.scene.media.MediaPlayer.<init>(MediaPlayer.java:421)
    at com.aldora.tankwar.Tools.playSound(Tools.java:18)
    at com.aldora.tankwar.App.main(App.java:146)
Caused by: com.sun.media.jfxmedia.MediaException: Could not create player!
    at com.sun.media.jfxmediaimpl.NativeMediaManager.getPlayer(NativeMediaManager.java:295)
    at com.sun.media.jfxmedia.MediaManager.getPlayer(MediaManager.java:118)
    at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:474)
  1. 调试结果:com.sun.media.jfxmediaimpl.platform.gstreamer.GSTPlatform.createMediaPlayer 抛出媒体错误:ERROR_MEDIA_NULL

【问题讨论】:

    标签: java javafx gstreamer


    【解决方案1】:

    经过反复试验,我发现升级javafx无法解决这个问题,从javafx11切换到javafx16可以解决它。 javafx download link

    【讨论】:

      【解决方案2】:

      问题出在 java 的“sound.properties”配置文件中。我现在在 Ubuntu 20.04 上,使用 java-11-openjdk,所以,编辑 /etc/java-11-openjdk/sound.properties 并在末尾添加以下行:

      javax.sound.sampled.Clip=com.sun.media.sound.DirectAudioDeviceProvider
      javax.sound.sampled.Port=com.sun.media.sound.PortMixerProvider
      javax.sound.sampled.SourceDataLine=com.sun.media.sound.DirectAudioDeviceProvider
      javax.sound.sampled.TargetDataLine=com.sun.media.sound.DirectAudioDeviceProvider
      

      如需深入了解,请阅读:https://keithp.com/blogs/Java-Sound-on-Linux/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-28
        • 1970-01-01
        • 1970-01-01
        • 2013-11-02
        • 1970-01-01
        • 1970-01-01
        • 2015-01-05
        • 1970-01-01
        相关资源
        最近更新 更多