2011-09-24 68 views
1

我正在嘗試製作顯示最佳電影預告片的應用程序。我想用每個視頻的縮略圖顯示網格視圖,然後點擊它們打開一個新的活動來播放視頻。檢索視頻的縮略圖

鑑於視頻片刻,我該如何檢索縮略圖?如果這是複雜的第一幀也足夠了。謝謝

回答

3

如果您使用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); 

希望它有幫助!

+0

感謝您的回答。如果我沒有video_id,我該怎麼做,因爲它是SD卡中的視頻文件? (如果可能,保持API等級7+)謝謝 – Addev

+0

@Adrmedi編輯我的答案。 – evilone

+0

@Addev +1真棒,像魅力一樣工作。 – Venky