1 | MediaMetadataRetriever mmr = new MediaMetadataRetriever(); |
#存在的问题
##有些手机媒体哭保存视频列表会有缩略图而有些则没有。但是一我们呈现的是要有封面图也就是缩略图,那该如何获取缩略图呢?
我们可以这样,先判断手机里面是否有缩略图,也就是上面检索的结果是否有thumbCusor.getCounnt()`0;没有的话:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25private void setThumb() {
Task.callInBackground(new Callable<Object>() {
@Override
public Object call() throws Exception {
getThumbBitmap();
return null;
}
}).onSuccessTask(new Continuation<Object, Task<Object>>() {
@Override
public Task<Object> then(Task<Object> task) throws Exception {
mVideoInfoAdapter.notifyDataSetChanged();
return null;
}
});
}
//有些机型没有缩略图,需要生成bitmap
private void getThumbBitmap() {
for (VideoInfo mVideoInfo : mVideoInfoAdapter.getAll()) {
if(TextUtil.isEmptyOrNull(mVideoInfo.thumbPath) || !new File(mVideoInfo.thumbPath).exists()){
mVideoInfo.thumbBitmab = MediaStore.Video.Thumbnails.getThumbnail(getActivity().getContentResolver(), mVideoInfo.id, MediaStore.Video.Thumbnails.MINI_KIND, null);
}
}
}
###存在的问题是:每次都要去生成缩略图,每次都很耗时 待优化;
参考文章:http://jayfeng.com/2016/03/16/%E7%90%86%E8%A7%A3ThumbnailUtils/