2011-09-24 123 views
1

我正在尝试制作显示最佳电影预告片的应用程序。我想用每个视频的缩略图显示网格视图,然后点击它们打开一个新的活动来播放视频。检索视频的缩略图

鉴于视频片刻,我该如何检索缩略图?如果这是复杂的第一帧也足够了。谢谢

回答

3

如果您使用API​​ 2.0或更新,这将工作。

要获取视频ID:

String[] proj = { 
    MediaStore.Video.Media._ID, 
     MediaStore.Video.Media.DISPLAY_NAME, 
    MediaStore.Video.Media.DATA 
}; 

Cursor cursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, 
            proj, MediaStore.Video.Media.DISPLAY_NAME+"=?",new String[] {"name.mp4"}, null); 
cursor.moveToFirst() 
id = cursor.getLong(cursor.getColumnIndex(MediaStore.Video.Media._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); 

编辑

如果你是在Android-8(升级Froyo )或以上,您可以使用视频路径中的ThumbnailUtils.createVideoThumbnail

Bitmap thumb = ThumbnailUtils.createVideoThumbnail(path, 
    MediaStore.Images.Thumbnails.MINI_KIND); 

希望它有帮助!

+0

感谢您的回答。如果我没有video_id,我该怎么做,因为它是SD卡中的视频文件? (如果可能,保持API等级7+)谢谢 – Addev

+0

@Adrmedi编辑我的答案。 – evilone

+0

@Addev +1真棒,像魅力一样工作。 – Venky