2016-04-26 140 views
2

我正在处理Android中的缩略图。即使我使用Android提供的功能ThumbnailUtils.createVideoThumbnail,它也会得到黑色的位图。Android:ThumbnailUtils.createVideoThumbnail返回黑色位图

我开始我的研究,并找出一些链接:
1/Thumbnail null
2/Video Thumbnail return null

不过,我检查了我返回的位图,并计算出它不是空。

如果您有任何想法,请让我知道。

任何建议,将不胜感激。先谢谢你!

+0

你也可以做到这一点,这是更好的办法,我认为http://stackoverflow.com/a/34082262/1462770 – Amir

回答

0

您可以使用此方法来创建缩略图

private Bitmap getThumbnailBitmap(String file_name,String file_type) 
    { 
     try 
     { 
      String file_path= Environment.getExternalStorageDirectory()+File.separator+ Constants.APP_FOLDER_NAME+File.separator+ Constants.ATTACHMENTS_FOLDER_NAME+File.separator+file_name; 
      if(file_type.equals(Constants.FILE_TYPE_IMAGE)) 
      { 
       int dimens=(int) Env.currentActivity.getResources().getDimension(R.dimen.thumbnailHW); 
       FileInputStream fis = new FileInputStream(file_path); 
       Bitmap imageBitmap = BitmapFactory.decodeStream(fis); 
       return ThumbnailUtils.extractThumbnail(imageBitmap, dimens, dimens); 

      } 
      else if(file_type.equals(Constants.FILE_TYPE_VIDEO)) 
      { 

       return ThumbnailUtils.createVideoThumbnail(file_path, MediaStore.Video.Thumbnails.MICRO_KIND); 
      } 
     }catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
     return null; 
    } 
+0

谢谢您的回答。如果它有效,我会尝试将其标记为答案。 – LuongTruong

+0

我确切地知道我的输入文件是视频,我用来获得缩略图的代码正是你使用的'ThumbnailUtils.createVideoThumbnail(file_path,MediaStore.Video.Thumbnails.MICRO_KIND);'你有什么建议吗? – LuongTruong

+0

此代码创建视频的缩略图,如果您要创建图像的缩略图,请使用此代码ThumbnailUtils.createVideoThumbnail(file_path,MediaStore.Images.Thumbnails.MICRO_KIND); –

0

检查这一项

Bitmap ThumbnailUtils.createVideoThumbnail("picturePath", MediaStore.Video.Thumbnails.MINI_KIND); 
+0

谢谢你给出答案。该功能正是我正在做的缩略图。但我不知道它为什么会返回黑色缩略图。 – LuongTruong

+0

是否检查过您的视频路径? – DKV

+0

我存储在一个文件夹中的所有视频,但有一些视频无法获取缩略图,不是所有的视频。 – LuongTruong

0

如果此方法getThumbnailBitmap();返回空的位图出现此问题的一些设备,以便使用下面的代码

Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(
       getActivity().getContentResolver(), 
       ContentUris.parseId(intent.getData()), 
       MediaStore.Video.Thumbnails.MICRO_KIND, 
       (BitmapFactory.Options) null); 
+0

我能够接收位图,但它是黑色缩略图。我从视频中间得到缩略图,并且有一张图像,因此它不应该是黑色的 – LuongTruong