在 Flutter 中存储相机胶卷和图库媒体的路径

问题描述 投票:0回答:1

我已经使用 image_picker 从手机图库中抓取图像和视频,但据我所知,保留这些媒体以供以后使用需要将它们保存到另一个目录,即应用程序的存储目录,并将路径保存到该媒体位于某个数据存储中(这也是我所做的)。看起来甚至从 image_picker 返回的 XFile 也有一个临时目录的路径。

话虽这么说,实际上是否有一种方法可以“直接”从图库存储对媒体的引用?我假设这里的困难在于这样一个事实,即手机在其相机胶卷上呈现的所有内容并非都是本地的......这意味着稍后使用此参考将需要一些逻辑,“如果本地,使用本地文件,否则从云端获取” - 例如,就像您分享几周前拍摄的视频一样。

我的用例是一个类似 Instagram 的应用程序,可能涉及数百或数千个条目,每个条目都可能链接到一个视频和/或图像文件。我当前的解决方案如上所述 - 允许用户选择一个视频,然后将整个视频复制到应用程序特定的目录,将该新路径保存到一个对象,然后将其保留到本地数据库。

显然,这不太节省空间,并且违背了 iCloud 等节省空间功能的目的,至少就选定的媒体而言是这样。但此时 - 或者也许永远 - 我宁愿不实施基于云的视频存储并承担相关的成本和麻烦。如果能为图库条目本身存储某种标识符就太好了,这样只要用户不从相机胶卷中删除媒体,我的应用程序就始终可以使用它。

我知道 gallery_saver 允许持久保存到图库,但这在为以后的用户引用媒体时没有帮助。事实上,库的方法似乎没有返回任何内容 - 它们只是等待保存到图库。

除了当前的解决方案之外,我还尝试保留从 image_picker 返回的临时文件,可以预见的是,该文件不起作用。我还没有看到任何 image_picker 方法或其他库提供直接引用相机胶卷中所选媒体的返回。

flutter image video gallery camera-roll
1个回答
0
投票

有一个名为 photo_manager 的插件(https://pub.dev/packages/photo_manager),可让您将图像/视频保存到图库中。作为回报,你会得到一个 id,你应该在本地持久化。每当您想要访问 Gallery 文件时,您都会获得从您保留的 id 开始的文件临时路径。

我还没有做到的是稍后更新图库文件。

© www.soinside.com 2019 - 2024. All rights reserved.