Android 2.2和2.3中的MediaMetadataRetriever

Android 2.2和2.3中的MediaMetadataRetriever,android,Android,我想使用MediaMetadataRetriever来显示URL音乐的封面。 在安卓2.2中,我尝试下面的代码,它可以工作,但在安卓2.3.3中不行 MediaMetadataRetriever mmr = new MediaMetadataRetriever(); mmr.setDataSource(url); byte[] cover_array = mmr.extractAlbumArt(); cover = BitmapFactory.decodeByteArray(cover_arra

我想使用MediaMetadataRetriever来显示URL音乐的封面。 在安卓2.2中,我尝试下面的代码,它可以工作,但在安卓2.3.3中不行

MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(url);
byte[] cover_array = mmr.extractAlbumArt();
cover = BitmapFactory.decodeByteArray(cover_array, 0, cover_array.length);
在安卓2.3.3中,我尝试了下面的代码,它可以工作,但在安卓2.2中不行

MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(url);
byte[] cover_array = mmr.getEmbeddedPicture();
cover = BitmapFactory.decodeByteArray(cover_array, 0, cover_array.length);
getEmbeddedPicture()将在Android 2.2中编译失败。 extractAlbumArt()将在Android 2.3.3中编译失败。 我想同时修复安卓2.2和2.3.3。
我是如何做到的?

是的,您不能在2.2中使用它,因为
MediaMetadataRetriever
类是从api级别10开始的(使用2.3.3或更高版本)

请参见此处:


是的,您不能在2.2中使用它,因为
MediaMetadataRetriever
类是从api级别10开始的(在2.3.3或更高版本中工作)

请参见此处:


尽管有这些文档,但根据我自己的测试和我在网上读到的内容,它在2.2中确实运行良好

据我所知,它实际上也适用于旧版本的Android,只是没有记录在案


我不知道为什么Android文档会说它是在API级别10(姜饼MR1)中添加的……我怀疑可能是在它被添加到文档中的时候吧?

尽管有这些文档,但根据我自己的测试和我在网上读到的内容,它在2.2中确实工作得很好

据我所知,它实际上也适用于旧版本的Android,只是没有记录在案


我不知道为什么Android文档说它是在API级别10(姜饼MR1)中添加的…我怀疑这可能是当它被添加到文档中时?

为什么不在运行时检查操作系统并使用简单的if/then来决定调用哪个方法?

为什么不在运行时检查操作系统并使用简单的if/then来决定调用哪个方法?

@lorne和nLL:如何在我正在操作系统上编译的项目中导入MediaMetadataRetriever2.2?导入android.media.MediaMetadataRetriever@lorne和nLL:如何在我正在OS 2.2上编译的项目中导入MediaMetadataRetriever?导入android.media.MediaMetadataRetriever;