[英]How to move a photo/video to an album with Flutter on mobile (iOS and Android)?
在移动设备(iOS 和 Android)上使用 Flutter,如何将媒体移动到相册?
我尝试在 iOS 上结合gallery_saver
和photo_manager
:
AssetEntity
从Recents
AssetEntity
与相簿中的文件GallerySaver.saveImage
。 在这一点上, Recents
两次显示相同的媒体,是有道理的。PhotoManager.editor.deleteWithIds
删除原始AssetEntity
文件,它显示了一个本机弹出窗口,询问用户是否可以删除媒体。 糟糕的用户体验... 有没有办法在不创建新文件的情况下更改AssetEntity
专辑?
值得庆幸的是,该库的作者最近对其进行了更新,以包含此答案中讨论的专辑删除功能。 你可以看到他们的 拉取请求。 或者参考README中的方法调用removeAssetsInAlbum
photo_manager
库正在使用PHAssetChangeRequest的方法deleteAssets(_:) 。 你可以在这里看到这个。 这将删除实际文件,而不仅仅是将其从相册中删除(更多信息在解释部分)
解决方案是使用PHAssetCollectionChangeRequest的方法。 取决于您的用例:
删除资产和移除资产是有区别的。 删除资产文件是通过PHAssetChangeRequest完成的,它会永久删除资产文件及其从专辑中的引用。 但是删除资产是通过PHAssetCollectionChangeRequest完成的,它从专辑中删除资产的引用(不是文件)而不删除文件本身。 检查这个答案。
此部分现已过时,但保留用于无法使用photo_manager
其他用例,如果您想使用photo_manager
,请参阅此答案的顶部
您可以选择以下选项来解决您的问题:
photo_manager
查找我上面解释的相册方法,也许它在那里?
目前photo_manager
使用PHAssetChangeRequest
的方法deleteAssets(_:) :
[PHAssetChangeRequest deleteAssets:result];
这应该改为使用PHAssetCollectionChangeRequest
的方法removeAssets(_:) :
[PHAssetCollectionChangeRequest removeAssets:result];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.