Cómo cargar miniaturas de video usando la biblioteca cuadrada picasso?

Actualmente estoy cargando las miniaturas de imágenes de MediaStore usando picasso en el ListView con el fragmento siguiente: ( video.getData() devuelve la ruta real de la imagen como mnt/sdcard/... )

 Picasso.with(this.context) .load(new File(photo.getData())) .resize(50, 50).config(config) .centerCrop() .into(viewHolder.imageViewItem); 

Ahora estoy e incapaz de cargar las Miniaturas de Video de MediaStore simplemente pasando el video.getData() lugar de photo.getData() ?

Primero debes crear VideoRequestHandler

 public class VideoRequestHandler extends RequestHandler{ public String SCHEME_VIDEO="video"; @Override public boolean canHandleRequest(Request data) { String scheme = data.uri.getScheme(); return (SCHEME_VIDEO.equals(scheme)); } @Override public Result load(Request data, int arg1) throws IOException { Bitmap bm = ThumbnailUtils.createVideoThumbnail(data.uri.getPath(), MediaStore.Images.Thumbnails.MINI_KIND); return new Result(bm,LoadedFrom.DISK); } } 

Después de esto

  VideoRequestHandler videoRequestHandler; Picasso picassoInstance; 

Construir sólo una vez

  videoRequestHandler = new VideoRequestHandler(); picassoInstance = new Picasso.Builder(context.getApplicationContext()) .addRequestHandler(videoRequestHandler) .build(); 

A continuación, cargue el archivo desde la ruta de acceso

  picassoInstance.load(VideoRequestHandler.SCHEME_VIDEO+":"+filepath).into(holder.videoThumbnailView); 

Antes, tenías dos opciones:

1) Haga una llamada de antemano, cuando estaba recuperando sus videos por ejemplo y almacenando el mapa de bits:

 Bitmap thumbnailBitmap = MediaStore.Video.Thumbnails.getThumbnail(content, id, MediaStore.Video.Thumbnails.MINI_KIND, options); 

2) Creación de un descargador personalizado (no verificado para los medios locales)

Pero ahora, con Picasso 2.4, puede crear un RequestHandler. Usted puede echar un vistazo en esta página por ejemplo: http://blog.jpardogo.com/requesthandler-api-for-picasso-library/

En mi uso actual, busco la ruta de miniaturas y luego llamo a Picasso con esa ruta. Para obtener la ruta de miniatura, me refería a: android obtener miniatura de vídeo PATH, no Bitmap .

 public void bindTo(MediaListHolder mediaListRowHolder, int i) { DataPictures message = itemList.get(i); try { Uri uri = Uri.fromFile(new File(message.getFilePath())); if (message.getFileType().equalsIgnoreCase("video")) { Bitmap bmThumbnail = ThumbnailUtils.extractThumbnail(ThumbnailUtils.createVideoThumbnail(message.getFilePath(), MediaStore.Video.Thumbnails.FULL_SCREEN_KIND), MAX_WIDTH, MAX_HEIGHT); mediaListRowHolder.thumbnail.setImageBitmap(bmThumbnail); } else { Picasso.with(ApplicationSingleton.getInstance()).load(uri) .resize(size, size) .placeholder(R.drawable.logo_slogan) .into(mediaListRowHolder.thumbnail); } Log.i(TAG, "bindTo: "); } catch (Exception e) { e.printStackTrace(); } } 
  • Zoom de TouchImageView ajustado a fotograma con Picasso
  • Cómo mostrar el porcentaje de descarga al cargar imágenes en Picasso
  • ¿Cómo lograr el seguimiento de la imagen de marcador de posición en ImageView Android como Pinterest?
  • ¿Cómo puedo utilizar un color como imagen de marcador de posición con Picasso?
  • Picasso y contexto
  • Esquinas redondeadas con Picasso
  • ¿Cómo obtengo el mapa de bits resultante de una imagen después de haber sido redimensionado en una vista de imagen con picasso
  • ¿Está bien crear una nueva instancia de picasso cada vez
  • Android picasso, razón de error
  • ¿Cómo hacer deslizar la pantalla como picasso?
  • Picasso v / s Imageloader v / s Fresco vs Glide
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.