我有以下代码;
String[] projection = { MediaStore.Video.VideoColumns._ID, MediaStore.Video.VideoColumns.DATA };
//String selection = MediaStore.Video.VideoColumns.KIND + "=" + MediaStore.Video.VideoColumns.;
String sort = MediaStore.Video.VideoColumns._ID + " DESC";
Cursor myCursor = getActivity().managedQuery(MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI, projection, null, null, sort);
try
{
myCursor.moveToFirst();
Log.d("VIDEO_URI", intent.getDataString());
Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(
getActivity().getContentResolver(), myCursor.getLong(myCursor.getColumnIndexOrThrow(MediaStore.Video.VideoColumns._ID)),
MediaStore.Video.Thumbnails.MICRO_KIND,
(BitmapFactory.Options) null );
ImageView iv = (ImageView) getActivity().findViewById(R.id.attached_media_image);
//Log.d("IMAGE", curThumb.toString());
iv.setImageBitmap(bitmap);
}
catch (Exception e) {
// TODO: handle exception
Log.e("ERROR", e.toString());
}当这段代码运行时,我在我的LogCat中得到了以下内容;
03-13 12:05:14.740: D/VIDEO_URI(7269): content://media/external/video/media/474但是它没有将iv的图像设置为任何值,并且当我尝试运行Log.d(" image ",curThumb.toString());行时,它抛出了一个空异常。
任何帮助都将不胜感激谢谢。
发布于 2012-03-14 02:32:45
不能保证缩略图生成成功,因为对于某些视频编解码器,生成缩略图的部分不能这样做。在这种情况下,返回的Bitmap将为null。
curThumb,我在你的代码中看不到它的定义。编辑:您的错误是使用缩略图表中的ID,而不是视频的id。您所需要做的就是以这种方式获取位图:
Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(
getActivity().getContentResolver(),
ContentUris.parseId(intent.getData()),
MediaStore.Video.Thumbnails.MICRO_KIND,
(BitmapFactory.Options) null );接口文档表示:"origId:关注缩略图关联的原始图片id。“
https://stackoverflow.com/questions/9688789
复制相似问题