我需要一些帮助来创建从我的Android手机录制的视频的缩略图,并且我已经从此Link获取了此代码,并且我修改了这部分代码以生成缩略图,但是以某种方式将缩略图未生成,因此将不胜感激。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == VIDEO_CAPTURED) {
videoFileUri = data.getData();
if (videoFileUri != null) {
Bitmap image= ThumbnailUtils.createVideoThumbnail(videoFileUri.toString(),MODE_APPEND);
ImageView imageView=(ImageView)findViewById(R.id.image);
imageView.setImageBitmap(image);
}
playVideoButton.setEnabled(true);
}
}
答案 0 :(得分:2)
您可以使用glide.
自动设置的视频缩略图。
Glide还可以显示视频的缩略图,只要它们存储在手机上即可。让我们假设您通过允许用户选择视频来获取文件路径:基于此文档https://futurestud.io/tutorials/glide-displaying-gifs-and-videos
String filePath = "/storage/emulated/0/Pictures/example_video.mp4";
Glide
.with(context)
.asBitmap()
.load(Uri.fromFile(new File(filePath)))
.into(imageViewGifAsBitmap);
答案 1 :(得分:0)
这是经过测试的完整的工作解决方案:
尝试一下。
if (videoFileUri != null) {
Bitmap bitmapThumb = null;
try {
bitmapThumb = ThumbnailUtils.createVideoThumbnail(videoFileUri.toString(),
MediaStore.Video.Thumbnails.MINI_KIND);// MINI_KIND, size: 512 x 384 thumbnail | MICRO_KIND, size: 96 x 96 thumbnail
ImageView imageView = (ImageView) findViewById(R.id.image);
// imageView.setImageBitmap(bitmapThumb);
Uri uri = getImageUri(context, bitmapThumb);
Picasso.with(context)
.load(uri)
.placeholder(R.drawable.ic_imagedefault)
.error(R.drawable.ic_imagedefault)
.resize(350, 200)//as per need.
.centerCrop()
.into(imageView);
} catch (Exception e) {
e.printStackTrace();
} finally {
bitmapThumb = null;
}
}
}
这是 getImageUri 的静态方法:
public static Uri getImageUri(Context inContext, Bitmap inImage) {
try {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.PNG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
} catch (Exception e) {
e.printStackTrace();
return Uri.parse("");
}
}
答案 2 :(得分:0)
Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(filePath, MediaStore.Video.Thumbnails.MICRO_KIND);
这对我来说很好用。 https://developer.android.com/reference/android/media/ThumbnailUtils
答案 3 :(得分:-3)
Uri uri = getImageUri(context, bitmapThumb);
Glide.with(getContext()).
load(uri).
thumbnail(0.1f).
into(imageView);