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

Javafx无法在ubuntu 20上使用MediaExcture播放mp3文件

黄丰
2023-03-14
  1. 配置:ubuntu 20、JavaFX11、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();
    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)

共有2个答案

燕璞
2023-03-14

问题出在java的“sound.properties”配置文件中。我现在在Ubuntu20.04上,使用java-11-openjdk,因此,编辑了/etc/java-11-openjdk/sound。属性,并在末尾添加了以下行:

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/

刘元青
2023-03-14

经过一些尝试和错误,我发现升级javafx无法解决这个问题,从javafx11切换到javafx16可以解决这个问题。javafx下载链接

 类似资料:
  • 我遵循了本教程:http://what-when-how.com/javafx-2/playing-audio-using-the-media-classes-javafx-2-part-1/ 我有相应的资源文件夹在相应的目录中。类文件,但我仍然不能播放音频。mp3文件与教程中的不同,但我也有一个. wav等效文件,发现JavaFX可以开箱播放*. wav文件,但不能播放mp3文件。怎么回事啊?

  • 标记为“good”的文件可以正确播放,而标记为“bad”的文件则不能。两个文件在同一个目录中;两个文件都使用音乐播放器播放;并且这两个文件都可以在Windows7机器上使用Python3.4和pygame。

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

  • 我正在用JavaFX开发我认为应该是一个简单的任务的media player,它将在用户默认的音乐文件夹路径(使用fedora)中播放存储在本地硬盘驱动器上的mp3文件。我可以很好地从命令行播放所有mp3文件,但当我尝试通过javafx.scene.media库播放时,javafx一直告诉我mp3是一种受支持的媒体类型。我已经下载了我能找到的每一个图书馆,但没有用。下面是一个实际尝试打开文件并播放

  • 我有一个不和谐的机器人写在不和谐的js。我有一个命令,在语音频道播放mp3文件。 如果我在我的windows pc上运行bot,一切都会正常工作。机器人加入频道,播放文件,然后再次离开。如果我在我的Ubuntu18.04虚拟机上运行bot,bot会在不播放文件的情况下加入并立即断开连接。 mp3文件的路径是绝对的。我已经尝试使用connection.play文件(路径)代替相同的问题。我尝试使用o

  • 我写了一个应用程序来播放mp3文件,我有控制和一切滚动,只是一个问题,每个mp3文件是单独播放,我必须触发一个新的文件播放。 我想知道我如何(按语法)判断玩家是否已经完成了一个文件的播放,这样我就可以继续下一个文件了? 这是线程代码