采用安卓自带方法

  1. // 获取视频缩略图
  2. public static Bitmap getVideoThumbnail(int videoId, Context context) {
  3. Bitmap bitmap = null;
  4. BitmapFactory.Options options = new BitmapFactory.Options();
  5. options.inDither = false;
  6. options.inPreferredConfig = Bitmap.Config.ARGB_8888;
  7. try {
  8. bitmap = MediaStore.Video.Thumbnails.getThumbnail(context.getContentResolver(), videoId, MediaStore.Images.Thumbnails.MICRO_KIND, options);
  9. } catch (Exception e) {
  10. e.printStackTrace();
  11. }finally {
  12. return bitmap;
  13. }
  14. }

以上的方面可以用最原生的方式获取本地视频的封面,但是会出现部分视频封面获取失败的情况,原因未知,看了好多个视频播放应用也是一样的情况,就先不管了。
但需要注意的是如果是视频列表,需要处理一下,因为该方法比较耗时。

使用Glide

  1. Glide.with(getContext().getApplicationContext())
  2. .setDefaultRequestOptions(
  3. new RequestOptions()
  4. .frame(1000000)
  5. .centerCrop()
  6. .error(R.drawable.video_cover)//错误图
  7. .placeholder(R.drawable.video_cover))//占位图
  8. .load(videoPath)
  9. .into(iv);

�这种方式更简单,且Glide内部已经处理了线程问题。