【问题标题】:Android: ThumbnailUtils.createVideoThumbnail return black bitmapAndroid:ThumbnailUtils.createVideoThumbnail 返回黑色位图
【发布时间】:2016-04-26 10:38:40
【问题描述】:

我正在处理 Android 中的缩略图。即使我使用Android提供的函数ThumbnailUtils.createVideoThumbnail,它也得到了黑色的位图。

我开始研究并找到一些链接:
1/ Thumbnail null
2/Video Thumbnail return null

但是,我检查了返回的位图,发现它不为空。

如果您有任何想法,请告诉我。

任何建议将不胜感激。提前谢谢!

【问题讨论】:

标签: android thumbnails android-bitmap android-videoview


【解决方案1】:

您可以使用此方法创建缩略图

private Bitmap getThumbnailBitmap(String file_name,String file_type)
    {
        try
        {
            String file_path= Environment.getExternalStorageDirectory()+File.separator+ Constants.APP_FOLDER_NAME+File.separator+ Constants.ATTACHMENTS_FOLDER_NAME+File.separator+file_name;
            if(file_type.equals(Constants.FILE_TYPE_IMAGE))
            {
                int dimens=(int) Env.currentActivity.getResources().getDimension(R.dimen.thumbnailHW);
                FileInputStream fis = new FileInputStream(file_path);
                Bitmap imageBitmap = BitmapFactory.decodeStream(fis);
                return ThumbnailUtils.extractThumbnail(imageBitmap, dimens, dimens);

            }
            else if(file_type.equals(Constants.FILE_TYPE_VIDEO))
            {

                return ThumbnailUtils.createVideoThumbnail(file_path, MediaStore.Video.Thumbnails.MICRO_KIND);
            }
        }catch (Exception e)
        {
            e.printStackTrace();
        }
        return null;
    }

【讨论】:

  • 感谢您的回答。如果可行,我会尝试并将其标记为答案。
  • 我知道我的输入文件是视频,我用来获取缩略图的代码正是你使用的ThumbnailUtils.createVideoThumbnail(file_path, MediaStore.Video.Thumbnails.MICRO_KIND);你有什么建议吗?
  • 如果您想创建图像的缩略图,此代码会创建视频缩略图,然后使用此代码 ThumbnailUtils.createVideoThumbnail(file_path, MediaStore.Images.Thumbnails.MICRO_KIND);
【解决方案2】:

检查这个

Bitmap ThumbnailUtils.createVideoThumbnail("picturePath", MediaStore.Video.Thumbnails.MINI_KIND);

【讨论】:

  • 感谢您的回答。该功能正是我正在做的获取缩略图。但我不知道为什么它会返回黑色缩略图。
  • 你检查你的视频路径了吗?
  • 我所有的视频都保存在一个文件夹中,但是有些视频无法获取缩略图,不是全部。
  • 是的,我做到了,所有这些都在 .mp4 中。我想知道为什么只有少数视频可以有缩略图,而另一个返回黑色缩略图,而不是 null。我从视频中间得到缩略图,没有黑框,所以它不应该是黑色缩略图。
【解决方案3】:

如果这个方法getThumbnailBitmap();返回 Bitmap Null 这个问题在某些设备上会出现,所以使用下面的代码

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

【讨论】:

  • 我可以接收位图,但它是黑色缩略图。我从视频中间得到了缩略图,并且有一张图片,所以它不应该是黑色的
猜你喜欢
  • 1970-01-01
  • 2014-04-27
  • 1970-01-01
  • 2018-03-05
  • 1970-01-01
  • 2011-08-08
  • 2013-10-21
  • 1970-01-01
  • 2013-04-09
相关资源
最近更新 更多