如何解决从一张专辑到另一张专辑的PHAsset复制
我想将资产从一个相册复制到另一相册,而不需要imageData或videoData,也就是说,只需将资产从一个相册复制到另一相册
我做什么
let asset = PHAsset.fetchAssets(withLocalIdentifiers: [assetLocalIdentifier],options: .none).firstObject
PHPhotoLibrary.shared().performChanges({
guard let albumChangeRequest = PHAssetCollectionChangeRequest(for: album) else { return }
albumChangeRequest?.addAssets([asset] as NSFastEnumeration)
})
相册是我的自定义相册
即时通讯崩溃
*** Terminating app due to uncaught exception 'NSinvalidargumentexception',reason: '-[__NSCFString objectID]: unrecognized selector sent to instance 0x600002339340'
如果我将视频保存到文件并使用creationRequestForAssetFromVideo ...,则ofc资产存在,相册也存在,并且一切正常。
通过creationRequestForAssetFromVideo进行保存没有问题,但是为此,我需要先保存该视频,并且我想复制用户选择的内容而不必等待视频被保存,甚至可以吗?
解决方法
好吃的东西找到方法
视频
PHImageManager.default().requestAVAsset(forVideo: asset,options: PHVideoRequestOptions()) { (avAsset,_,_) in
if let assetURL = avAsset as? AVURLAsset {
_url = assetURL.url
....
图片
asset.requestContentEditingInput(with: PHContentEditingInputRequestOptions()) { (contentEditingInput,_) in
if let url = contentEditingInput?.fullSizeImageURL {
_url = url
....
现在是图片
PHAssetChangeRequest.creationRequestForAssetFromImage
或视频
PHAssetChangeRequest.creationRequestForAssetFromVideo
说明: 我们无法直接复制资产,但可以从系统中资产所在的位置获取路径并将其复制到相册中
快乐编码;)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。