【问题标题】:How to create Video Thumbnail from mp4 file which is in asset folder如何从资产文件夹中的 mp4 文件创建视频缩略图
【发布时间】:2012-10-18 09:24:51
【问题描述】:

我在从资产文件夹中的 mp4 文件创建缩略图时遇到问题。尝试输入不同的资产路径但没有效果。我该如何解决?

这是我的一段适配器代码:

VideoEntry video = videos.get(position);
    holder.txtTitle.setText(video.getTitle());
    holder.imgIcon.setImageBitmap(ThumbnailUtils.createVideoThumbnail("file:///android_asset/videos/Core/Superman.mp4", Thumbnails.MICRO_KIND));

怎么了?

解决方案:

 AssetManager am = getAssets();
 InputStream ims = am.open("images/" + category + "/" + item.replace(" ", "_").replace(".mp4", ".png").toLowerCase());
 Drawable d = Drawable.createFromStream(ims, null);
 holder.imgIcon.setImageDrawable(d);

【问题讨论】:

    标签: android


    【解决方案1】:

    ThumbnailUtils.createVideoThumbnail() 只是从MediaStore 查询现有的缩略图,如果不存在则强制MediaStore 创建它。这意味着您不能为 MediaStore 不可用的视频文件创建缩略图,因为它是您的应用程序的资产,而不是 SD 卡上的实际文件。您可以将文件提取到 SD 卡中,或者只提供您自己在另一个应用程序中创建的缩略图。希望这可以帮助。

    【讨论】:

    • 谢谢,它可以帮助我在一个小时的灵魂搜索中不再浪费更多时间。我已经设法通过另一种方式设置图像 - > 请参阅解决方案:
    【解决方案2】:

    这对我有用

    Bitmap getThumbnailOf(AssetFileDescriptor afd, int atTime) {
        Bitmap bitmap = null;
        MediaMetadataRetriever retriever = null;
        if (afd != null && afd.getFileDescriptor().valid()) try {
            retriever = new MediaMetadataRetriever();
            retriever.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
                bitmap = retriever.getScaledFrameAtTime(atTime, MediaMetadataRetriever.OPTION_CLOSEST, 1280, 720);
            } else {
                bitmap = retriever.getFrameAtTime(atTime);
            }
            afd.close();
            retriever.release();
            Log.i("TAG", "getting bitmap process done");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return bitmap;
    }
    

    通过提供输入

    getThumbnailOf(getAssets().openFd("videos/Core/Superman.mp4"), 500000)
    

    【讨论】:

      【解决方案3】:

      Assets 它是应用程序静态资源的文件夹。您可以手动为此视频创建缩略图,也可以将其放入资产中。

      【讨论】:

      • 我按照你说的做了。谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-17
      • 2012-06-26
      • 2013-02-02
      • 2014-07-01
      • 2010-12-18
      • 2011-01-25
      • 1970-01-01
      相关资源
      最近更新 更多