1
我正在尝试制作显示最佳电影预告片的应用程序。我想用每个视频的缩略图显示网格视图,然后点击它们打开一个新的活动来播放视频。检索视频的缩略图
鉴于视频片刻,我该如何检索缩略图?如果这是复杂的第一帧也足够了。谢谢
我正在尝试制作显示最佳电影预告片的应用程序。我想用每个视频的缩略图显示网格视图,然后点击它们打开一个新的活动来播放视频。检索视频的缩略图
鉴于视频片刻,我该如何检索缩略图?如果这是复杂的第一帧也足够了。谢谢
如果您使用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);
希望它有帮助!
感谢您的回答。如果我没有video_id,我该怎么做,因为它是SD卡中的视频文件? (如果可能,保持API等级7+)谢谢 – Addev
@Adrmedi编辑我的答案。 – evilone
@Addev +1真棒,像魅力一样工作。 – Venky