how to get video thumb nail from raw folder video on android
Asked Answered
D

3

7

in my app i need to display video thumb nail which is stored in res/raw folder. i searched regard it. i get the following code.

int id = **"The Video's 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);

by this code i get video thumb nail from sdcard. but video from res/raw folder it does not show video thumb nail. i tried long time but i could not find solution. i tried in the following way.

I create an array and store the resource id (Ex: int[] videoid={R.raw.vi1,...}) and place the id in MediaStore.Video.Thumbnails.getThumbnail(crThumb, videoid[position], MediaStore.Video.Thumbnails.MICRO_KIND, options);.

please help me. thanks in advance.

D answered 16/6, 2011 at 4:12 Comment(0)
I
19

You can try to get some frame out of your video just like this:

Uri  videoURI = Uri.parse("android.resource://" + getPackageName() +"/"
        +R.raw.cashword_video);
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(this, videoURI);
Bitmap bitmap = retriever
        .getFrameAtTime(100000,MediaMetadataRetriever.OPTION_PREVIOUS_SYNC);
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
Ingoing answered 11/2, 2013 at 20:56 Comment(1)
This works great! thanks for the pointer. Too many people have stated its not possible without writing the file out to the sdcard... :(Ossuary
G
2

Video on res/raw folder of your application aren't managed by Android Media Content Provider, so you cannot obtain their thumbnail from it.

Alternatively, you can try to save them as normal file in your SD and, then, ask to media provider for thumbnail or create it directly via ThumbnailUtils.createVideoThumbnail class (only Android 2.2 or above)

Gilli answered 12/10, 2011 at 16:25 Comment(0)
G
0

Use Android Glide Library for that

In Project Gradle

repositories {
  mavenCentral()
  google()
}

In app Gradle

dependencies {
  implementation 'com.github.bumptech.glide:glide:4.10.0'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.10.0'
}

Use below code in you activity

Glide.with(this).load(R.raw.demo).diskCacheStrategy(NONE).into(imageView);
Glide.with(this).load("file:///android_asset/demo.mp4").diskCacheStrategy(NONE).into(imageView);
Glide.with(this).load("android.resource://" + context.getPackageName() + "/raw/demo").diskCacheStrategy(NONE).into(imageView);
Gaselier answered 13/11, 2019 at 9:23 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.