采用安卓自带方法
// 获取视频缩略图
public static Bitmap getVideoThumbnail(int videoId, Context context) {
Bitmap bitmap = null;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inDither = false;
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
try {
bitmap = MediaStore.Video.Thumbnails.getThumbnail(context.getContentResolver(), videoId, MediaStore.Images.Thumbnails.MICRO_KIND, options);
} catch (Exception e) {
e.printStackTrace();
}finally {
return bitmap;
}
}
以上的方面可以用最原生的方式获取本地视频的封面,但是会出现部分视频封面获取失败的情况,原因未知,看了好多个视频播放应用也是一样的情况,就先不管了。
但需要注意的是如果是视频列表,需要处理一下,因为该方法比较耗时。
使用Glide
Glide.with(getContext().getApplicationContext())
.setDefaultRequestOptions(
new RequestOptions()
.frame(1000000)
.centerCrop()
.error(R.drawable.video_cover)//错误图
.placeholder(R.drawable.video_cover))//占位图
.load(videoPath)
.into(iv);
�这种方式更简单,且Glide内部已经处理了线程问题。