免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Android -- 獲取視頻第一幀縮略圖

 從API 8開始,新增了一個類:

Android.media.ThumbnailUtils這個類提供了3個靜態(tài)方法一個用來獲取視頻第一幀得到的Bitmap,2個對圖片進行縮略處理。

public static Bitmap createVideoThumbnail (String filePath, int kind)

第一個參數(shù)是視頻文件的路徑,第二個參數(shù)是指定圖片的大小,有兩種選擇Thumbnails.MINI_KINDThumbnails.MICRO_KIND。

  • 第一種文檔上說大小是512 x 384 ,我用一個MP4格式文件測試得到544 x 960,用一個wmv格式文件測試得到160 x 120。明顯不靠譜。
  • 第二種參數(shù)兩種格式文件得到的大小都是 96 x 96,這個才是縮略圖。
extractThumbnail(Bitmap source, int width, int height, int options)extractThumbnail(Bitmap source, int width, int height)

這兩種方法都是用來處理Bitmap的大小的,第一個參數(shù)是要處理的Bitmap,第二個參數(shù)是處理后寬度,第三個是高度,第四個參數(shù)options,如果options定義為OPTIONS_RECYCLE_INPUT,則回收資源。也就是說可以用第三種方法把截取到的視頻第一幀的Bitmap轉成任意想要的大小,第三個方法還可以獲取內存卡內圖片的縮略圖。

Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(path1, Thumbnails.MINI_KIND);  bitmap = ThumbnailUtils.extractThumbnail(bitmap, 210, 210);

API 10開始新增一類MediaMetadataRetriever可以用來獲取媒體文件的信息

MediaMetadataRetriever mmr = new MediaMetadataRetriever();  mmr.setDataSource("/sdcard/33.mp4");  Bitmap bitmap = mmr.getFrameAtTime();  image.setImageBitmap(bitmap);  System.out.println(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DATE)+"");  System.out.println(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_MIMETYPE)+"");  mmr.release();

MediaMetadataRetriever可以獲取視頻任何一幀的縮略圖。

 

public static Bitmap createVideoThumbnail(String filePath) {      // MediaMetadataRetriever is available on API Level 8      // but is hidden until API Level 10      Class<?> clazz = null;      Object instance = null;      try {          clazz = Class.forName("android.media.MediaMetadataRetriever");          instance = clazz.newInstance();            Method method = clazz.getMethod("setDataSource", String.class);          method.invoke(instance, filePath);            // The method name changes between API Level 9 and 10.          if (Build.VERSION.SDK_INT <= 9) {              return (Bitmap) clazz.getMethod("captureFrame").invoke(instance);          } else {              byte[] data = (byte[]) clazz.getMethod("getEmbeddedPicture").invoke(instance);              if (data != null) {                  Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);                  if (bitmap != null) return bitmap;              }              return (Bitmap) clazz.getMethod("getFrameAtTime").invoke(instance);          }      } catch (IllegalArgumentException ex) {          // Assume this is a corrupt video file      } catch (RuntimeException ex) {          // Assume this is a corrupt video file.      } catch (InstantiationException e) {          Log.e(TAG, "createVideoThumbnail", e);      } catch (InvocationTargetException e) {          Log.e(TAG, "createVideoThumbnail", e);      } catch (ClassNotFoundException e) {          Log.e(TAG, "createVideoThumbnail", e);      } catch (NoSuchMethodException e) {          Log.e(TAG, "createVideoThumbnail", e);      } catch (IllegalAccessException e) {          Log.e(TAG, "createVideoThumbnail", e);      } finally {          try {              if (instance != null) {                  clazz.getMethod("release").invoke(instance);              }          } catch (Exception ignored) {          }      }      return null;  }
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
MediaMetadataRetriever類、方法以及使用詳解
Android獲取圖片大小以及獲取指定大小的縮略圖
【Android】縮略圖Thumbnails
Android 播放視頻并獲取指定時間的幀畫面
android加載大量圖片內存溢出的三種解決辦法
2.1版本中如何獲得視頻文件的縮略圖 - Android 問題&解答 eoe·Android開發(fā)者門戶
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服