Я пытаюсь использовать следующий код, который я нашел в здесь, чтобы сохранить эскиз видео в определенное время, но VideoBitmapDecoder не принимает параметр int. Он принимает только Context или BitmapPool. Что мне делать?
BitmapPool bitmapPool = Glide.get(getApplicationContext()).getBitmapPool();
int microSecond = 6000000;// 6th second as an example
VideoBitmapDecoder videoBitmapDecoder = new VideoBitmapDecoder(microSecond);
FileDescriptorBitmapDecoder fileDescriptorBitmapDecoder = new FileDescriptorBitmapDecoder(videoBitmapDecoder, bitmapPool, DecodeFormat.PREFER_ARGB_8888);
Glide.with(getApplicationContext()) .load(yourUri)
.asBitmap()
.override(50,50)//
.videoDecoder(fileDescriptorBitmapDecoder) .into(yourImageView);




Первопричина: Из Glide v4 они изменили API, поэтому я дам вам 2 варианта решения вашей проблемы.
Опция 1: Сохранить текущий код и изменить версию зависимостей Glide в файле app.gradle.
// implementation 'com.github.bumptech.glide:glide:4.8.0'
// annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
implementation 'com.github.bumptech.glide:glide:3.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:3.8.0'
Вариант 2: Сохраните текущие зависимости Glide в файле app.gradle и измените свой код.
int microSecond = 6000000;// 6th second as an example
RequestOptions options = new RequestOptions().frame(microSecond).override(50, 50);
Glide.with(getApplicationContext())
.asBitmap()
.load(videoUri)
.apply(options)
.into(yourImageView);
Обновлять: Если вы хотите обработать растровое изображение, не отображаемое в представлении
Glide.with(getApplicationContext())
.asBitmap()
.load(videoUri)
.apply(options)
.listener(new RequestListener<Bitmap>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Bitmap bitmap, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
// TODO: Process your bitmap here
return false;
}
})
.submit();
@Javad см. Мой обновленный ответ, просто измените порядок метода asBitmap.
Да, спасибо, теперь он работает. Еще один вопрос, я не хочу показывать этот эскиз в виде изображения. Я хочу сохранить его растровое изображение в списке массивов. Как это сделать?
Спасибо, чувак, это сэкономило мне много времени.
Спасибо за ответ, но у меня нет метода
asBitmap()!