当我试图从媒体商店获取FULL_SCREEN_KIND缩略图时,我一直收到错误'不支持的类型:2'。我知道URI是一个有效的图像(因为我已经预先得到较小的拇指)。我的错误在哪里?谢谢。
我的代码
Long myURI = Long.parseLong(record.getString("FILE_ID"));
if (record.getString("FILE_TYPE").equalsIgnoreCase("image")) {
Bitmap bitmap = MediaStore.Images.Thumbnails.getThumbnail(mContext.getContentResolver(), myURI ,MediaStore.Images.Thumbnails.FULL_SCREEN_KIND, (BitmapFactory.Options) null);
return bitmap;
}
else if (record.getString("FILE_TYPE").equalsIgnoreCase("video")) {
Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(mContext.getContentResolver(), myURI, MediaStore.Video.Thumbnails.FULL_SCREEN_KIND, (BitmapFactory.Options) null);
return bitmap;
}
logcat的
06-22 15:24:05.160 3510-3935/com.diverg.tidy I/asd﹕ ID: 50735
06-22 15:24:05.910 3510-3935/com.diverg.tidy W/dalvikvm﹕ threadid=21: thread exiting with uncaught exception (group=0x41ab3ba8)
06-22 15:24:05.941 3510-3935/com.diverg.tidy E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-8183
Process: com.diverg.tidy, PID: 3510
java.lang.IllegalArgumentException: Unsupported kind: 2
at android.provider.MediaStore$InternalThumbnails.getThumbnail(MediaStore.java:670)
at android.provider.MediaStore$Images$Thumbnails.getThumbnail(MediaStore.java:1022)
at com.diverg.tidy.LightboxImageManager.getBitmap(LightboxImageManager.java:105)
at com.diverg.tidy.LightboxImageManager.access$400(LightboxImageManager.java:32)
at com.diverg.tidy.LightboxImageManager$ImageQueueManager.run(LightboxImageManager.java:250)
at java.lang.Thread.run(Thread.java:841)
答案 0 :(得分:1)
http://developer.android.com/reference/android/provider/MediaStore.Video.Thumbnails.html
似乎“亲切”的参数应该是MICRO_KIND或MINI_KIND。
答案 1 :(得分:1)
如果您使用的是android-8(Froyo)或更高版本,则可以使用ThumbnailUtils.createVideoThumbnail
,如下所示:
Bitmap thumb = ThumbnailUtils.createVideoThumbnail(path,
MediaStore.Images.Thumbnails.FULL_SCREEN_KIND);