使用FFmpegMediaMetadataRetriever github:https://github.com/wseemann/FFmpegMediaMetadataRetrievergit
刪掉沒用的庫其實沒多大,刪掉mips和x86文件夾github
代碼:異步
private Bitmap getThumbnai(String path){ FFmpegMediaMetadataRetriever fmmr = new FFmpegMediaMetadataRetriever(); Bitmap bitmap = null; try { fmmr.setDataSource(path); bitmap = fmmr.getFrameAtTime(); if (bitmap != null) { Bitmap b2 = fmmr .getFrameAtTime( 4000000, FFmpegMediaMetadataRetriever.OPTION_CLOSEST_SYNC); if (b2 != null) { bitmap = b2; } if (bitmap.getWidth() > 640) {// 若是圖片寬度規格超過640px,則進行壓縮 bitmap = ThumbnailUtils.extractThumbnail(bitmap, 640, 480, ThumbnailUtils.OPTIONS_RECYCLE_INPUT); } } } catch (IllegalArgumentException ex) { ex.printStackTrace(); } finally { fmmr.release(); } return bitmap; }
在掉用的時候異步調一下ide
new AsyncTask<Void, Void, Bitmap>(){ @Override protected Bitmap doInBackground(Void... arg0) { Bitmap b = MainActivity.this.getThumbnai(path); return b; } @Override protected void onPostExecute(Bitmap b) { if(b!=null){ Log.d("doubi", "b!=null"); image.setImageBitmap(b); bar.setVisibility(View.GONE); image.setVisibility(View.VISIBLE); play.setVisibility(View.VISIBLE); } } }.execute();
~~先記錄再次,有時間再細研究this