繁体   English   中英

如何在移动设备(iOS 和 Android)上使用 Flutter 将照片/视频移动到相册?

[英]How to move a photo/video to an album with Flutter on mobile (iOS and Android)?

在移动设备(iOS 和 Android)上使用 Flutter,如何将媒体移动到相册?

我尝试在 iOS 上结合gallery_saverphoto_manager

  1. 我读了媒体AssetEntityRecents
  2. 保存在AssetEntity与相簿中的文件GallerySaver.saveImage 在这一点上, Recents两次显示相同的媒体,是有道理的。
  3. 尝试使用PhotoManager.editor.deleteWithIds删除原始AssetEntity文件,它显示了一个本机弹出窗口,询问用户是否可以删除媒体。 糟糕的用户体验...

有没有办法在不创建新文件的情况下更改AssetEntity专辑?

2020 年 4 月更新

值得庆幸的是,该库的作者最近对其进行了更新,以包含此答案中讨论的专辑删除功能。 你可以看到他们的 拉取请求 或者参考README中的方法调用removeAssetsInAlbum

问题

photo_manager库正在使用PHAssetChangeRequest的方法deleteAssets(_:) 你可以在这里看到这个。 这将删除实际文件,而不仅仅是将其从相册中删除(更多信息在解释部分)

解决方案

解决方案是使用PHAssetCollectionChangeRequest的方法。 取决于您的用例:

将资产从专辑移动到另一个

从相册中删除资产

将资产添加到相册

解释

删除资产和移除资产是有区别的。 删除资产文件是通过PHAssetChangeRequest完成的,它会永久删除资产文件及其从专辑中的引用。 但是删除资产是通过PHAssetCollectionChangeRequest完成的,它从专辑中删除资产的引用(不是文件)而不删除文件本身。 检查这个答案

该怎么办? 如何应用此解决方案?

此部分现已过时,但保留用于无法使用photo_manager其他用例,如果您想使用photo_manager ,请参阅此答案的顶部

您可以选择以下选项来解决您的问题:

  • 在库 photo_manager查找我上面解释的相册方法,也许它在那里? EDIT1我只是在寻找 PHAssetCollectionChangeRequest的方法。 当前不支持/使用。
  • 向库中添加问题并要求作者进行所述更改
  • 通过 PR 或您自己的库克隆版本将它们添加到库中
  • 使用自己的平台渠道,自己处理。

示例更改:

目前photo_manager 使用PHAssetChangeRequest的方法deleteAssets(_:)

[PHAssetChangeRequest deleteAssets:result];

这应该改为使用PHAssetCollectionChangeRequest的方法removeAssets(_:)

[PHAssetCollectionChangeRequest removeAssets:result];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM