【问题标题】:Grab video thumbnail and show it in a Gridview in android抓取视频缩略图并在 android 的 Gridview 中显示
【发布时间】:2015-09-18 10:10:57
【问题描述】:

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

Bitmap bmThumbnail = ThumbnailUtils.createVideoThumbnail(VideoValues.get(position).getAbsolutePath(),
                                        Thumbnails.MINI_KIND);

显然,这段代码在后台线程中运行。但唯一的问题是 gribview 在滚动时仍然冻结很多。据我说,主要问题是从视频中提取位图,这需要很多时间。谁能建议我从视频中获取位图以及如何在网格中获取位图的不同方法?我已经在 Facebook 等其他应用程序中看到了流畅的行为。但我不知道如何做到这一点。

【问题讨论】:

    标签: android gridview bitmap video-thumbnails


    【解决方案1】:

    请使用以下方法从视频中检索视频缩略图

        @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;
        }
    

    【讨论】:

    • 不值得使用。它仍然是缓慢的图像,您已经使用了我们已经使用过的 MediaMetadataRetriver。我们在 BaseAdapter 的 getView 方法中显示视频位图
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 2012-04-04
    • 2010-11-23
    相关资源
    最近更新 更多