MediaMetadataRetriever的Android问题:返回null值

时间:2013-12-01 08:11:03

标签: android

尝试使用MediaMetadataRetriever检索mp3信息(Albumname,...)。 在模拟器中它工作正常。在我的设备上,大多数方法都返回null。

MediaMetadataRetriever mmr = new MediaMetadataRetriever(); mmr.setDataSource(songPath);

String albumName = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);

String mp3Title = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);

String mimekey = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_MIMETYPE);

mp3确定了这些信息,因为在模拟器中显示了这些信息(同一个文件!)。文件路径没有设置mimekey,我也没有例外。

我正在使用SdkVersion = 14。 我查过了 How to get songs from album/Artist in android,using MediametadataRetriever?Android MediaMetadataRetriever returns null values from most keys 但它没有帮助。无法调试MediaMetadataRetriever.extractMetadata,因为它的本机代码。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您是否尝试过FFmpegMediaMetadataRetriever?:

FFmpegMediaMetadataRetriever retriever = new FFmpegMediaMetadataRetriever();
retriever.setDataSource(songPath);
String albumName = retriever.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_ALBUM);
String mp3Title = retriever.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_TITLE);
retriever.release();

答案 1 :(得分:0)

我在视频GPS_LOCATION上遇到了同样的问题。在某些设备中它正在工作,而在某些设备中它却不工作。

此修复程序是次要的,而不是

setDataSource(context, uri)

我用过

setDataSource(absoluteFilePath)