Я попытался создать миниатюру видео, как описано здесь .
Я также прочитал ссылку здесь .
В моем приложении я сначала позволил пользователю выбрать видео с:
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?
Интересно (может быть и так) Я получаю нулевое значение при попытке использовать MediaStore.Video.Thumbnails.MINI_KIND
в качестве размера миниатюры и IllegalArgumentException ("Unsupported kind: 2")
при попытке FULL_SCREEN_KIND
.
Я использую Motorola Milestone с Android 2.1.
EDIT:
Я также попытался получить идентификатор с помощью запроса BaseColumns._ID, но он оказался таким же, как в Uri (в данном примере _ID равен 5).