Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.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
抓取视频缩略图并在android的Gridview中显示_Android_Gridview_Bitmap_Video Thumbnails - Fatal编程技术网

抓取视频缩略图并在android的Gridview中显示

抓取视频缩略图并在android的Gridview中显示,android,gridview,bitmap,video-thumbnails,Android,Gridview,Bitmap,Video Thumbnails,我正在开发一个模块,我想把所有用户的视频从sd卡显示到Gridview中。我在arraylist中以通常的方式抓取了视频文件路径(检查是否为文件或目录,保存是否为文件),并抓取了其位图缩略图,代码如下: Bitmap bmThumbnail = ThumbnailUtils.createVideoThumbnail(VideoValues.get(position).getAbsolutePath(), Thumbn

我正在开发一个模块,我想把所有用户的视频从sd卡显示到Gridview中。我在arraylist中以通常的方式抓取了视频文件路径(检查是否为文件或目录,保存是否为文件),并抓取了其位图缩略图,代码如下:

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方法中显示视频位图