MediaStore.Video.Thumbnails.getThumbnail() 返回 null

2023-12-27

我有以下代码;

String[] projection = { MediaStore.Video.VideoColumns._ID, MediaStore.Video.VideoColumns.DATA };
                //String selection = MediaStore.Video.VideoColumns.KIND + "=" + MediaStore.Video.VideoColumns.;
                String sort = MediaStore.Video.VideoColumns._ID + " DESC";

                Cursor myCursor = getActivity().managedQuery(MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI, projection, null, null, sort);


                try
                {
                    myCursor.moveToFirst();
                    Log.d("VIDEO_URI", intent.getDataString());
                    Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(
                            getActivity().getContentResolver(), myCursor.getLong(myCursor.getColumnIndexOrThrow(MediaStore.Video.VideoColumns._ID)),
                            MediaStore.Video.Thumbnails.MICRO_KIND,
                            (BitmapFactory.Options) null );

                    ImageView iv = (ImageView) getActivity().findViewById(R.id.attached_media_image);

                    //Log.d("IMAGE", curThumb.toString());

                    iv.setImageBitmap(bitmap);

                }
                catch (Exception e) {
                    // TODO: handle exception
                    Log.e("ERROR", e.toString());
                }

运行时,我在 LogCat 中得到以下内容;

03-13 12:05:14.740: D/VIDEO_URI(7269): content://media/external/video/media/474

但它不会将 iv 的图像设置为任何内容,当我尝试运行 Log.d("IMAGE", curThumb.toString()); 时行,在本例中被注释掉,它会抛出一个空异常。

任何帮助将不胜感激,谢谢。


不保证缩略图生成成功,因为生成缩略图的部分对于某些视频编解码器无法执行此操作。返回的Bitmapnull在这种情况下。

  • 你检查过是否bitmap != null?
  • 您是否获得了视频的缩略图,例如画廊应用程序?
  • What is curThumb,我在你的代码中看不到它的定义。

编辑:您的错误是您使用缩略图表中的 ID,而不是视频的 ID。 您需要做的就是以这种方式获取位图:

        Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(
                getActivity().getContentResolver(),
                ContentUris.parseId(intent.getData()),
                MediaStore.Video.Thumbnails.MICRO_KIND,
                (BitmapFactory.Options) null );

Api Doc 说:“origId:与感兴趣的缩略图关联的原始图像 ID。”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MediaStore.Video.Thumbnails.getThumbnail() 返回 null 的相关文章

随机推荐