¿Es posible generar una miniatura desde una url de vídeo en android

Estoy trabajando en una aplicación de video. Estoy transmitiendo un video desde un enlace de servidor, ¿es posible que genere una miniatura de vídeo desde la URL sin descargar el video.

Sin descargar el video puedes generar miniaturas desde abajo del código:

public static Bitmap retriveVideoFrameFromVideo(String videoPath) throws Throwable { Bitmap bitmap = null; MediaMetadataRetriever mediaMetadataRetriever = null; try { mediaMetadataRetriever = new MediaMetadataRetriever(); if (Build.VERSION.SDK_INT >= 14) mediaMetadataRetriever.setDataSource(videoPath, new HashMap<String, String>()); else mediaMetadataRetriever.setDataSource(videoPath); // mediaMetadataRetriever.setDataSource(videoPath); bitmap = mediaMetadataRetriever.getFrameAtTime(); } catch (Exception e) { e.printStackTrace(); throw new Throwable("Exception in retriveVideoFrameFromVideo(String videoPath)" + e.getMessage()); } finally { if (mediaMetadataRetriever != null) { mediaMetadataRetriever.release(); } } return bitmap; } 

NOTA: El video se almacena como Intra y Non Intra (Cuadros) getFrameAtTime devolverá la imagen Intra más cercana como Bitmap. Así que básicamente no se descargará el video completo.

No es posible crear una miniatura desde el enlace de vapor, tienes que mostrarlo desde el servidor. Mejor sube una miniatura a lo largo del video. Utilice el siguiente código para generar miniaturas

 Bitmap ThumbnailUtils.createVideoThumbnail("picturePath", MediaStore.Video.Thumbnails.MINI_KIND); 

Aquí está su enlace:

  1. Android: ¿Es posible mostrar miniaturas de vídeo?
  2. http://developer.android.com/reference/android/media/ThumbnailUtils.html

En mi opinión, el lado del servidor debe crear una miniatura de un video y transferir imágenes en miniatura de vídeo a través de su servicio.

Buscamos todos los videos en Android Phone. http://sunilkmrnishad.blogspot.in/2017/03/read-files-apps-photos-media-from.html

Public class ThumbnailExtract extends AsyncTask {

 private final String videoUrl; private final ImageView mThumbnail; private final boolean mIsVideo; private MediaMetadataRetriever mmr; public ThumbnailExtract(String videoLocalUrl, ImageView thumbnail, boolean isVideo) { this.videoUrl = videoLocalUrl; mThumbnail = thumbnail; mIsVideo = isVideo; if (!isVideo) { mmr = new MediaMetadataRetriever(); } } @Override protected Bitmap doInBackground(String... params) { if (!mIsVideo) { return getBitmap(videoUrl); } else { return ThumbnailUtils.createVideoThumbnail(videoUrl, MediaStore.Images.Thumbnails.MINI_KIND); } } @Override protected void onPostExecute(Bitmap thumb) { if (thumb != null) { mThumbnail.setImageBitmap(thumb); } } private Bitmap getBitmap(String fileUrl) { mmr.setDataSource(fileUrl); byte[] data = mmr.getEmbeddedPicture(); Bitmap bitmap = null; // convert the byte array to a bitmap if (data != null) { bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); } return bitmap != null ? ScalingUtilities.createScaledBitmap(bitmap, 40, 40, ScalingUtilities.ScalingLogic.FIT) : bitmap; } 

}

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.