2016-04-26 138 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