Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中从视频uri生成缩略图并将其转换为base64_Java_Android - Fatal编程技术网

Java 在android中从视频uri生成缩略图并将其转换为base64

Java 在android中从视频uri生成缩略图并将其转换为base64,java,android,Java,Android,我正在尝试从视频(缩略图)中获取一帧并将其转换为base64。我使用了以下代码,但有时不起作用: Uri selectedVideo = Uri.parse(intent.getStringExtra("trimmedVideo")); MediaMetadataRetriever mMMR = new MediaMetadataRetriever(); mMMR.setDataSource(this, selectedVid

我正在尝试从视频(缩略图)中获取一帧并将其转换为base64。我使用了以下代码,但有时不起作用:

        Uri selectedVideo = Uri.parse(intent.getStringExtra("trimmedVideo"));

        MediaMetadataRetriever mMMR = new MediaMetadataRetriever();
        mMMR.setDataSource(this, selectedVideo);
        Bitmap thumbnail = mMMR.getFrameAtTime();
        Log.d(Global.getTag(), "thumbnail: "+thumbnail);
我在logcast中也遇到了这个错误:

E/MediaMetadataRetrieverJNI: getFrameAtTime: videoFrame is a NULL pointer
缩略图为空。提前谢谢

注: 我也尝试使用下一个代码,但它不起作用

Bitmap thumb = ThumbnailUtils.createVideoThumbnail(filePath, Thumbnails.MICRO_KIND);
参考:

第一种方法

Bitmap thumb = ThumbnailUtils.createVideoThumbnail(filePath, Thumbnails.MICRO_KIND);
缩略图部分决定缩略图的类型。(大或小)

第二种方法

Bitmap thumb = ThumbnailUtils.createVideoThumbnail(filePath, Thumbnails.MICRO_KIND);

这是一个库,它将使您更容易实现

第三种方法

Bitmap thumb = ThumbnailUtils.createVideoThumbnail(filePath, Thumbnails.MICRO_KIND);
使用Glide库

RequestOptions requestOptions = new RequestOptions();
 Glide.with(getContext())
      .load("video_url")
      .apply(requestOptions)
      .thumbnail(Glide.with(getContext()).load("video_url"))
      .into("yourimageview");

我尝试使用它,但它返回null(1),我需要有缩略图才能将其转换为base64,因此我不能使用2。您是否添加了Yes,并请求API>=23,但现在我正在使用带有API 22的手机,所以这无关紧要。此外,崩溃有时也会发生,我了解到MediaMetadataRetriever有时不工作。添加了另一个使用glide库的实现我不能使用glide,因为我需要缩略图将其加载到ImageView,但我还需要将该缩略图转换为base64,