2015-11-06 77 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);