Возможно ли создать эскиз видеоролика в андроиде

Я работаю над видео-приложением. Я транслирую видео с серверной ссылки, возможно ли, чтобы я мог создать эскиз видео с URL без загрузки видео.

Solutions Collecting From Web of "Возможно ли создать эскиз видеоролика в андроиде"

Без загрузки видео вы можете создавать эскизы из нижнего кода:

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; } 

ПРИМЕЧАНИЕ. Видео сохраняется как Intra и non Intra (кадры изображения). GetFrameAtTime вернет ближайший не-Intra-фрейм в виде растрового изображения. Таким образом, в основном он не будет загружать все видео.

Невозможно создать эскиз с паровой ссылки, вы должны показать его с сервера. Лучше загрузите миниатюру по видео. Используйте приведенный ниже код для создания эскиза

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

Вот ваша ссылка:

  1. Android: Можно ли отображать миниатюры видео?
  2. http://developer.android.com/reference/android/media/ThumbnailUtils.html

На мой взгляд, серверная сторона должна создавать эскизы видео и передавать видеоролики с эскизами через вашу службу.

Мы получаем все видео в Android Phone. http://sunilkmrnishad.blogspot.in/2017/03/read-files-apps-photos-media-from.html

Public class ThumbnailExtract расширяет 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; } 

}