我无法使用javafx.scene.media.MediaPlayer类播放包含大png文件的mp3作为封面(缩略图)图像。您可以在附加的归档示例mp3文件和NetBeans项目中找到可用于重现我的问题的已编译应用程序。当我尝试打开mp3时,MediaPlayer不会抛出任何异常,但是文件没有播放。
没有封面的Mp3文件播放正常,如果我在mp3中包含相同的封面但是jpg格式它也可以正常播放。我可以使用MPC-HC x64和标准Windows Media Player播放带有大png封面的mp3。我在Windows 7 Ultimate 64位上测试了这个,使用Java 8 Update 25,构建1.8.0_25-b18。
在我的场景中,改变mp3文件本身是不可行的。我非常感谢任何不涉及更改mp3文件内容的解决方法的提示。
您可以在此处找到所提及的存档: https://www.dropbox.com/s/1vzw6hqteza0164/BugReproduction.zip?dl=0
P.S。你可以用mp3tag应用程序(http://www.mp3tag.de/en/download.html)更改mp3封面图片。
答案 0 :(得分:1)
我测试你的代码,根据你的问题,封面图像的尺寸也不仅仅是png如果图像超过2MB ...所以根据@jewelsea你可以在javafx-jira.kenai上记录一个错误报告。 com,
我可以向您推荐一个代码解决方案: 您可以使用java代码创建一个没有图像封面的mp3临时文件...
...
mediaPlayer.setOnError(()-> {
(code to create temp file ...)
Media media = new Media(<tempfile>);
mediaPlayer = new MediaPlayer(media);
mediaPlayer.play();
});
mediaPlayer.play();
为此,有两种解决方案:
1)您可以在维基百科上的this和this中研究mp3文件的结构
2)您可以为windows安装eyeD3,请参阅this并使用java代码从行命令eyeD3 --remove-image mp3file tempmp3file
中使用此选项创建临时文件,阅读this