首页 > 解决方案 > 使用 PHPhotoLibrary 保存图片和视频时如何获取 Asset URL?

问题描述

我的代码用于ALAssetsLibrary将图像和视频保存到 iOS 画廊。但 Xcode 告诉我ALAssetsLibrary从 iOS 9.0 开始不推荐使用它,并建议我PHPhotoLibrary改用它。

使用旧的ALAssetsLibrary,我在保存后会得到一个资产 URL,例如assets-library://asset/asset.JPG?id=XXX. 但是ALAssetsLibrary,我找不到简单的方法来取回资产 URL。关于SO的很多相关问题都参考了这段代码:

https://gist.github.com/jVirus/2f041bb8b1936093773f0bde42af3a49

但是返回的 URL 是文件 URL: file://path/to/file,而不是资产 URL。

我发现最好的选择是获取资产标识符并连接字符串:

return URL(string: "assets-library://asset/asset.JPG?id="+assetId+"&ext=JPG")

这是一个不安全的 hack,因为 URL 格式将来可能会改变。有时我发现资产标识符在末尾包含“/”段,需要在连接之前将其剥离。

是否有任何“官方”API 方法来获取 a 的资产 URL PHAsset

标签: iosalassetslibraryphassetphphotolibrary

解决方案


推荐阅读