Ios 使用Url删除AVAsset
我发现了很多关于从照片应用程序中删除视频的例子。但它们似乎都不起作用。我想知道我是否做错了什么?以下是片段-Ios 使用Url删除AVAsset,ios,iphone,swift,Ios,Iphone,Swift,我发现了很多关于从照片应用程序中删除视频的例子。但它们似乎都不起作用。我想知道我是否做错了什么?以下是片段- PHPhotoLibrary.shared().performChanges({ let assetsToBeDeleted = PHAsset.fetchAssets(withLocalIdentifiers: ["video.mov"], options: nil) PHAssetChang
PHPhotoLibrary.shared().performChanges({
let assetsToBeDeleted = PHAsset.fetchAssets(withLocalIdentifiers: ["video.mov"], options: nil)
PHAssetChangeRequest.deleteAssets(assetsToBeDeleted)
}) { deleted, error in
if deleted {
print("Deleted")
}
}
我对
PHPhotoLibrary框架
有些了解
一旦您将资产中的任何照片或视频保存到设备PHPhotoLibrary
中,您的应用程序就不再是该资产的所有者,因此设备必须确保应用程序在开始删除此类数据之前拥有用户的权限
未经许可,您不能从应用程序中删除任何照片或视频
您需要将资产URL存储在数据库中,然后可以尝试这种方法
PHPhotoLibrary.sharedPhotoLibrary().performChanges( {
let imageAssetToDelete = PHAsset.fetchAssetsWithALAssetURLs(**imageUrl**, options: nil)
PHAssetChangeRequest.deleteAssets(imageAssetToDelete)
},
completionHandler: { success, error in
NSLog("Finished deleting asset. %@", (success ? "Success" : error))
})
例如,WhatsApp正在这样做。如果您决定同步图库,它会从您的照片应用程序中删除照片。您可以删除这些照片或视频,但需要将资源url存储在您的数据库或本地中。这很好。我评论时你没有添加代码:)@LucaD'Alberti,我也是这样做的,但没用。视频就放在存储的地方。AssetUrl是指它导出到右侧的URL?URL是在添加到PHPhotoLibrary时形成的原始图像。