我正在尝试在JavaFX中创建一个基本的Media Player。我终于可以根据文件中的元数据显示专辑封面了。
但是,即使我知道有专辑封面,在某些歌曲上也没有任何显示。
这里没有问题:
但是,当我选择另一个文件时,它看起来像这样:
我发誓我唯一要更改的是歌曲的名称。这两个文件均以MP3格式格式化,并具有500x500 jpg作为专辑封面。这首歌播放成功。表示文件存在。但没有专辑封面
me变量是包含文件的媒体。
这是我用来在程序中显示专辑封面的方法:
private void displayAlbumCover (){
// Will start to show a blank CD
File file = new File("src/sample/images/blank_cd.jpeg");
Image image = new Image(file.toURI().toString());
albumCoverView.setImage(image);
// However if an album cover is found in the meta-data it will be displayed
ObservableMap<String,Object> meta_data=me.getMetadata();
meta_data.addListener((MapChangeListener<String, Object>) ch -> {
if(ch.wasAdded()){
String key=ch.getKey();
Object value=ch.getValueAdded();
if (key.equals("image")){
// If there's an album cover in the metadata it will be displayed
albumCoverView.setImage((Image)value);
System.out.println("Found album cover");
}
}
});
}
最佳答案