从mediastore获取全屏缩略图 - Android

时间:2014-06-23 01:51:10

标签: android mediastore

当我试图从媒体商店获取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)

2 个答案:

答案 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);