Android:如何获取您的应用程序专用的文件的视频缩略图?

War*_*lax 15 media video android thumbnails mediastore

题:

如何获取应用程序专用文件的视频缩略图?具体来说,有没有办法直接从.mpeg文件中提取视频帧?

背景:

  1. 我的应用程序包括一个可以录制视频的相机.
  2. 出于产品原因,视频文件最初是在应用程序的专用数据目录中以私有模式创建和写入的,使其对应用程序是私有的.这是通过以下方式完成的:Context#openFileOutput(fileName, Context.MODE_PRIVATE)- 典型的文件路径如下所示:/data/data/[package.name]/files/[fileName].mp4- 仅供参考,我已尝试使用Context.MODE_WORLD_READABLEContext.MODE_PRIVATE不是帮助.
  3. 即使视频最终可能最终进入外部存储(通过将文件移动到Environment#getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)),也必须在视频处于应用程序专用存储中时显示缩略图.
  4. ThumbnailUtils.createVideoThumbnail(String, int)在将文件移动到公共目录后(无论是将其添加到MediaStore中),它似乎对文件工作正常,但是null当文件在内部存储中时静默失败(返回).

    • 注意:只要视频文件位于应用程序专用存储中,它就不会添加到MediaStore(设备库中的图像/视频内容提供商提供).只有将视频移动到外部存储后才能将其添加到MediaStore中.这是一个与产品无关的决定,我无法环游; 除非有一种方法可以将视频添加到媒体商店而不会被其他应用程序看到...我想知道应用程序私有存储中的视频是否可以添加到媒体商店并保持应用程序私有但是获得所有免费"服务" "由媒体商店提供,例如缩略图生成.

小智 2

大多数媒体 API 只是媒体服务器的 Binder 客户端,在自己的进程中运行。您可以尝试将该文件临时公开。