我正在尝试在JavaFX中创建一个基本的Media Player。我终于可以根据文件中的元数据显示专辑封面了。

但是,即使我知道有专辑封面,在某些歌曲上也没有任何显示。

这里没有问题:



但是,当我选择另一个文件时,它看起来像这样:



我发誓我唯一要更改的是歌曲的名称。这两个文件均以MP3格式格式化,并具有5​​00x500 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");

            }
        }
    });

}

最佳答案

好的,我尝试调试,这就是我得到的:

java - JavaFX MediaPlayer不会显示我所有音频文件的专辑封面,即使它们有一个-LMLPHP

上面的一个是行之有效的。

java - JavaFX MediaPlayer不会显示我所有音频文件的专辑封面,即使它们有一个-LMLPHP

但这不是。您能根据我给您的信息看到一些东西吗?

08-24 17:56