Я пытаюсь создать базовый медиаплеер в JavaFX. Я наконец-то сделал возможным отображение обложки альбома на основе метаданных в файле.
Однако в некоторых песнях он ничего не показывает, даже если я знаю, что есть обложка альбома.
Здесь нет проблем:
Однако, когда я выбираю другой файл, он выглядит так:
Клянусь, единственное, что я меняю, это название песни. Оба файла отформатированы в MP3 и имеют 500x500 jpg в качестве обложки альбома. Песня играет успешно. Это означает, что файл существует. Но нет обложки альбома
Переменная me - это Media, который содержит файл.
Этот метод используется для отображения обложки альбома в программе:
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");
}
}
});
}