1
我正在嘗試製作顯示最佳電影預告片的應用程序。我想用每個視頻的縮略圖顯示網格視圖,然後點擊它們打開一個新的活動來播放視頻。檢索視頻的縮略圖
鑑於視頻片刻,我該如何檢索縮略圖?如果這是複雜的第一幀也足夠了。謝謝
我正在嘗試製作顯示最佳電影預告片的應用程序。我想用每個視頻的縮略圖顯示網格視圖,然後點擊它們打開一個新的活動來播放視頻。檢索視頻的縮略圖
鑑於視頻片刻,我該如何檢索縮略圖?如果這是複雜的第一幀也足夠了。謝謝
如果您使用API 2.0或更新,這將工作。
要獲取視頻ID:
String[] proj = {
MediaStore.Video.Media._ID,
MediaStore.Video.Media.DISPLAY_NAME,
MediaStore.Video.Media.DATA
};
Cursor cursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
proj, MediaStore.Video.Media.DISPLAY_NAME+"=?",new String[] {"name.mp4"}, null);
cursor.moveToFirst()
id = cursor.getLong(cursor.getColumnIndex(MediaStore.Video.Media._ID));
要獲得視頻的縮略圖:
ImageView iv = (ImageView) convertView.findViewById(R.id.imagePreview);
ContentResolver crThumb = getContentResolver();
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 1;
Bitmap curThumb = MediaStore.Video.Thumbnails.getThumbnail(crThumb, id, MediaStore.Video.Thumbnails.MICRO_KIND, options);
iv.setImageBitmap(curThumb);
編輯:
如果你是在Android-8(升級Froyo )或以上,您可以使用視頻路徑中的ThumbnailUtils.createVideoThumbnail:
Bitmap thumb = ThumbnailUtils.createVideoThumbnail(path,
MediaStore.Images.Thumbnails.MINI_KIND);
希望它有幫助!
感謝您的回答。如果我沒有video_id,我該怎麼做,因爲它是SD卡中的視頻文件? (如果可能,保持API等級7+)謝謝 – Addev
@Adrmedi編輯我的答案。 – evilone
@Addev +1真棒,像魅力一樣工作。 – Venky