2015-11-06 83 views
2

我想獲取視頻的縮略圖。但不幸的是,我無法獲得縮略圖。如何在android中獲取視頻縮略圖?

 itmap bmThumbnail; 

     // MICRO_KIND: 96 x 96 thumbnail 
     bmThumbnail = ThumbnailUtils.createVideoThumbnail("file://" + catBean.tempImage, 
       MediaStore.Video.Thumbnails.MICRO_KIND); 
     img_icon.setImageBitmap(bmThumbnail); 
+0

看看這個鏈接的http:// stackoverflow.com/questions/1334694/android-is-it-possible-to-display-video-thumbnails –

回答

2

我在我的應用程序創建視頻縮略圖像這樣

Bitmap myBitmap = BitmapFactory.decodeFile(pathOfFile); 
    if(myBitmap == null) { 
     myBitmap = ThumbnailUtils.createVideoThumbnail(pathOfFile, Thumbnails.MICRO_KIND); 

} 
+0

我試過了,但它不適用於Android 5.0上SD卡(外部存儲)上的視頻+。它返回空位圖 – Dante

+0

如果您從SD卡獲取視頻,請首先檢查視頻是在外部存儲還是在某些雲存儲中。因爲如果視頻在雲存儲上,您將收到位圖空白。 –

+0

它與雲無關。這是新的存儲訪問框架,它把它搞砸了。這不適用於Android 5.0的SD卡 – Dante

0

試試這個

Bitmap bMap = ThumbnailUtils.createVideoThumbnail(file.getAbsolutePath(), MediaStore.Video.Thumbnails.MICRO_KIND); 

,並詳細內容見本ThumbnailUtils

0

這不是太難的事。事情是這樣的:

int id = **"The Video's ID"** 
ImageView iv = (ImageView) convertView.findViewById(R.id.imagePreview); 
ContentResolver crThumb = getContentResolver(); 
BitmapFactory.Options options=new BitmapFactory.Options(); 
options.inSampleSize = 1; 
Bitmap curThumb = MediaStore.Video.Thumbnails.getThumbnail(crThumb, id, MediaStore.Video.Thumbnails.MICRO_KIND, options); 
iv.setImageBitmap(curThumb); 

查看更多有關MediaStore在:http://developer.android.com/reference/android/provider/MediaStore.Video.html

1

在XML:

<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:orientation="vertical" > 

      <ImageView 
       android:id="@+id/thumbnail" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_vertical|center_horizontal" /> 
</LinearLayout> 

在java中:

long id = ""; //Video Id 

ImageView thumbnail = (ImageView) findViewById(R.id.thumbnail); 
ContentResolver crThumb = getContentResolver(); 
BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inSampleSize = 2; 
Bitmap curThumb = MediaStore.Video.Thumbnails.getThumbnail(crThumb, id, 
          MediaStore.Video.Thumbnails.MINI_KIND, options); 
thumbnail.setImageBitmap(curThumb);