Android MediaMetadataRetriever 提取类型错误格式

Android MediaMetadataRetriever extracting genre bad format

我在从 mp3 文件中提取 GENRE 元数据时遇到 MediaMetadataRetriever 问题。

    MediaMetadataRetriever metadata = new MediaMetadataRetriever();
    String path = file.getPath();
    metadata.setDataSource(path);
    String album = metadata.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
    Log.v("METADATA->", "Album: " + album);
    String artist = metadata.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
    Log.v("METADATA->", "Artist: " + artist);
    String genre = metadata.extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE);
    Log.v("METADATA->", "Genre: " + genre);

一切正常,但 GENRE 不是...

在 GENRE 为 'Rap' 的 mp3 文件中,我从日志中得到:

V/METADATA->: Genre: (15)

在 GENRE 为 'Hip-Hop' 的 mp3 文件中,我从日志中得到:

V/METADATA->: Genre: (7)

已解决!

没关系,在 Google 中搜索了一段时间,我去了这个网站,意识到为什么我的流派是一个“数字”。流派元数据存储在一个唯一的字节中,我找到了一个按字节值排序的 os 流派列表: ID3v1 genre list.