2010-07-18 4 views
0

Я попытался создать миниатюру видео, как описано here. Я также прочитал ссылку here.Не удается получить видеоролик в Android 2.0+

В моем приложении я первый позволить пользователю выбрать видео с:

startActivityForResult(new Intent(Intent.ACTION_GET_CONTENT).setType("video/*"), ACTIVITY_PICKVIDEO); 

Тогда я определить идентификатор видео с:

fileID = Integer.parseInt(contentUri.getLastPathSegment()); 

Таким образом, видео content://media/external/video/media/5 будет иметь идентификатор 5.

Тогда я пытаюсь получить растровый эскиз с:

ContentResolver crThumb = getContentResolver(); 
BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inSampleSize = 1; 
Bitmap curThumb = MediaStore.Video.Thumbnails.getThumbnail(crThumb, fileID, MediaStore.Video.Thumbnails.MICRO_KIND, options); 

Исключено исключение, но растровое изображение имеет ширину и высоту -1. Я не уверен, что идентификатор, необходимый в getThubnail(), на самом деле является идентификатором, который я определил выше.

Кто-нибудь знает пример работы, как получить растровое изображение миниатюр, если у вас есть контент Uri?

Интересно (может быть, так) Я получаю null при попытке с MediaStore.Video.Thumbnails.MINI_KIND размером с миниатюры и IllegalArgumentException ("Unsupported kind: 2") при попытке FULL_SCREEN_KIND.

Я использую Motorola Milestone с Android 2.1.

EDIT: Я также пытался получать удостоверение личности с запрашивая для BaseColumns._ID, но оказывается такой же, как и в Ури (в данном примере _ID является 5).

ответ

10

для получения идентификатора видео попробовать этот

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() 
fileid = cursor.getLong(cursor.getColumnIndex(MediaStore.Video.Media._ID)); 

для получения миниатюры:

ContentResolver crThumb = getContentResolver(); 
Bitmap curThumb = MediaStore.Video.Thumbnails.getThumbnail(crThumb,fileid, MediaStore.Video.Thumbnails.MICRO_KIND, options); 
iv2.setImageBitmap(curThumb); 

здесь iv2 является ImageView и name.mp4 будут представлять ваше имя файла

+0

@Manuel: использовать эту функцию android.media.ThumbnailUtils.createVideoThumbnail (\t \t \t \t \t путь, MediaStore.Video.T humbnails.MINI_KIND); здесь путь - это путь к файлу, с помощью которого вы можете получить эскиз определенного видео –

Смежные вопросы