我正在尝试使用PHAssetCreationRequest将图像资源添加到照片库。我可以添加照片,视频和现场照片,但我也试图包括调整数据(以AAE文件的形式)。
下面是我的代码(用于添加静态图像):
func createStillAssetOnAlbum(photoAsset: URL, adjustmentAssets: [URL], album: PHAssetCollection) {
PHPhotoLibrary.shared().performChanges ({
let creationRequest = PHAssetCreationRequest.forAsset()
let placeHolderAsset = creationRequest.placeholderForCreatedAsset
creationRequest.addResource(with: .photo, fileURL: photoAsset, options: nil)
adjustmentAssets.forEach { adjustmentAsset in
creationRequest.addResource(with: .adjustmentData, fileURL: adjustmentAsset, options: nil)
}
guard let albumChangeRequest = PHAssetCollectionChangeRequest(for: album) else {
print("album change request has failed")
return
}
albumChangeRequest.addAssets([placeHolderAsset] as NSArray)
}, completionHandler: { success, error in
if success {
print("photo (and adjustments) saved successfully")
self.importCount += 1
}
else if let e = error {
print("error saving photo (and adjustment): \(photoAsset.lastPathComponent)")
self.nonImportedImageCount += 1
}
})
}
我使用方法通过提供URL来添加资产。首先添加.photo资产类型,然后使用.adjustmentData资产类型添加与照片相关的任何AAE。
使用此代码,任何没有AAE的照片都可以导入,但代码无法导入具有AAE文件的照片。
谁能告诉我我可能做错了什么?我会很感激任何建议。非常感谢
1条答案
按热度按时间ztyzrc3y1#
尝试此操作时,您是否在控制台日志中看到任何错误?如果你使用数据API而不是url api,你会看到同样的失败吗?https://developer.apple.com/documentation/photokit/phassetcreationrequest/1622684-addresource