我正尝试为Android构建自己的音乐播放器。使用MediaMetadataRetriever提取元数据有意想不到的结果
对于一个列表,我需要歌曲的元数据,所以我使用MediaMetadataRetriever
来提取它们,但是检索器无法提取大多数歌曲的元数据(~660)。在我的PC音乐软件中,元数据可见并在Windows资源管理器中显示。如果我打开歌曲的属性,我可以修改它们,如果我在手机上加载更改的文件,它仍然不起作用。顺便说一句:如果我使用手机上的其他播放器,它总是能够加载元数据。
是MediaMetadataRetriever
越野车,我应该使用一些其他库提取或我做错了什么?
This问题是相关的,但并没有真正帮助解决我的问题。
下面是我的一些代码为例:
MediaMetadataRetriever lMetaData = new MediaMetadataRetriever();
lMetaData.setDataSource(mAbsolutePath);
mArtist = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
mTitle = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
mAlbum = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
mAlbumArtist = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUMARTIST);
mGenre = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE);
mSongNumber = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER);
mYear = lMetaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_YEAR);
if(mArtist == null)
mArtist = new String("");
if(mTitle == null)
mTitle = new String("");
if(mAlbum == null)
mAlbum = new String("");
if(mAlbumArtist == null)
mAlbumArtist = new String("");
if(mGenre == null)
mGenre = new String("");
if(mSongNumber == null)
mSongNumber = new String("");
if(mYear == null)
mYear = new String("");
我只是使用另一个外部库的标签,所以问题是某种解决。 – Schamote