Получить эскиз видео - PullRequest
       31

Получить эскиз видео

1 голос
/ 24 сентября 2011

Я пытаюсь сделать заявку на показ лучших трейлеров фильмов. Я хочу показать сетку с миниатюрами каждого видео, а затем щелкнуть по ним, чтобы открыть новое действие для воспроизведения видео.

Учитывая момент видео, как я могу получить миниатюру? Если это сложно, достаточно первого кадра. Спасибо

1 Ответ

3 голосов
/ 24 сентября 2011

Если вы используете API 2.0 или новее, это будет работать.

Чтобы получить идентификатор видео:

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);

EDIT :

Если вы используете Android-8 (Froyo) или выше, вы можете использовать ThumbnailUtils.createVideoThumbnail из пути к видео:

Bitmap thumb = ThumbnailUtils.createVideoThumbnail(path,
    MediaStore.Images.Thumbnails.MINI_KIND);

Надеюсь, это поможет!

...