how to get video thumb nail from raw folder video on android

♀尐吖头ヾ 提交于 2019-12-01 01:35:16

问题


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.


回答1:


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



回答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)




回答3:


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


来源:https://stackoverflow.com/questions/6367019/how-to-get-video-thumb-nail-from-raw-folder-video-on-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!