抓取视频缩略图并在android的Gridview中显示
我正在开发一个模块,我想把所有用户的视频从sd卡显示到Gridview中。我在arraylist中以通常的方式抓取了视频文件路径(检查是否为文件或目录,保存是否为文件),并抓取了其位图缩略图,代码如下:抓取视频缩略图并在android的Gridview中显示,android,gridview,bitmap,video-thumbnails,Android,Gridview,Bitmap,Video Thumbnails,我正在开发一个模块,我想把所有用户的视频从sd卡显示到Gridview中。我在arraylist中以通常的方式抓取了视频文件路径(检查是否为文件或目录,保存是否为文件),并抓取了其位图缩略图,代码如下: Bitmap bmThumbnail = ThumbnailUtils.createVideoThumbnail(VideoValues.get(position).getAbsolutePath(), Thumbn
Bitmap bmThumbnail = ThumbnailUtils.createVideoThumbnail(VideoValues.get(position).getAbsolutePath(),
Thumbnails.MINI_KIND);
显然,这段代码在后台线程中运行。但唯一的问题是gribview在滚动时仍然会冻结很多。据我所知,主要问题是从视频中提取位图,这需要很多时间。有人能给我建议一种从视频中获取位图的不同方法,以及如何在网格中创建位图吗?我已经在Facebook等其他应用程序中看到了平滑的行为,但我不知道如何做到这一点。请使用下面的方法从视频中检索视频缩略图
@SuppressLint("NewApi")
public static Bitmap retriveVideoFrameFromVideo(String videoPath)
throws Throwable
{
Bitmap bitmap = null;
MediaMetadataRetriever mediaMetadataRetriever = null;
try
{
mediaMetadataRetriever = new MediaMetadataRetriever();
mediaMetadataRetriever.setDataSource(videoPath);
bitmap = mediaMetadataRetriever.getFrameAtTime();
}
catch (Exception e)
{
throw new Throwable(
"Exception in retriveVideoFrameFromVideo(String videoPath)"
+ e.getMessage());
}
finally
{
if (mediaMetadataRetriever != null)
{
mediaMetadataRetriever.release();
}
}
return bitmap;
}
它不值得使用。它仍然会减慢图像速度,您已经使用了我们已经使用过的MediaMetadataRetriever。我们正在BaseAdapter的getView方法中显示视频位图