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

JavaFX 媒体播放器在打开 MP3 时崩溃,即使存在 libav 53 库?

段干高歌
2023-03-14

构建一个在linux下使用JavaFX媒体播放器的java 8(Oracle)应用程序。需要MP3支持我确定我需要确保系统上安装了libavformat53和libavcodec53。

现在,即使它们已安装在系统上,所有相关的.so文件都已链接并位于正确的位置。JavaFX在打开MP3时仍然崩溃。

你知道为什么这种情况仍在发生吗?

共有1个答案

鲜于允晨
2023-03-14

深入研究这个问题发现,我安装的目标系统上已经有libav 55库。使用strace,我看到java正在尝试加载55版库,而不是53版库。

JavaFX支持的配置列出了只有版本52和53是兼容的。55个库的加载似乎是由java认为它可以加载系统上不存在的libavplugin55触发的。

我的临时解决方案是在java本机库目录中创建一个链接 libavplugin.so/java_install_dir/lib/amd64。此链接指向同一目录中的 libavplugin-53.so,并导致 libavplugin-53 的优先级加载,而不是它的神秘表亲 libavplugin-55。

总之,新libav库的存在导致java在旧库上加载它们,即使它不兼容。我已经在删除格式和编解码器库的55版中看到了这一点,然后应用程序就可以工作了。

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

  • 我的问题是关于媒体播放器直播流从我的应用程序的url? 我正在尝试通过媒体播放器播放实时流mp3音频。

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

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

  • 我目前在一个项目中使用Javafx 2,我可能需要长时间无限循环播放一个视频。在windows上,当视频播放时,我的proifiler工具显示非常正常的图片,cpu负载不是很重(在2个内核上运行时约为2x40-50%),内存使用峰值约为250 MB,这是正常的。但是,当我在Ubuntu机器上部署应用程序时,每个内核的cpu负载达到70%左右(尽管它是一个双核atom处理器,所以假设这是正常的),内