从资产或相册中删除一个视频
Posted
技术标签:
【中文标题】从资产或相册中删除一个视频【英文标题】:delete one video from asset or album 【发布时间】:2015-04-08 06:18:34 【问题描述】:如何在 ios8 中从资产/相册中删除一个视频
-
当我使用 UIImagePickerController 进行选择时
然后我从资产/相册中选择一个视频
在信息字典中我得到了关于 didFinishPickingMediaWithInfo 方法的响应
UIImagePickerControllerMediaType = "public.movie";
UIImagePickerControllerMediaURL = "file:///Users/appaspect2/Library/Developer/CoreSimulator/Devices/A61DFE3B-8BA0-4A18-939A-2B0BC2F6084E/data/Containers/Data/Application/69E55783-CB4F-4620-9C81-B3948F5A843B/tmp/trim.1202C1FA-6130-4BC7-AA31-391CC7E0D7B6.MOV";
UIImagePickerControllerReferenceURL = "assets-library://asset/asset.MOV?id=189B68BD-17D0-4665-A065-11A40B0F2B25&ext=MOV";
我想删除在 UIImagePickerControllerReferenceURL 或资产/专辑视频中选择的文件
【问题讨论】:
【参考方案1】:AssestsLibrary 没有任何此类方法。但是在搜索了这个之后,我发现在 ios8 中删除照片可能可以使用照片框架
查看 Photos Framework 的文档
要删除资产,请参阅 PHAssetChangeRequest
+ (void)deleteAssets:(id<NSFastEnumeration>)assets
【讨论】:
如果我有一个 URL "assets-library://asset/asset.MOV?id=189B68BD-17D0-4665-A065-11A40B0F2B25&ext=MOV" 那么如何通过它呢? [[phphotoLibrary sharedPhotoLibrary] performChanges:^ [PHAssetChangeRequest deleteAssets:videoURL]; completionHandler:^(BOOL success, NSError *error) NSLog(@"完成删除资产。%@", (success ?@"Success." : error)); ]; 您可以从文件 url 获取 PHAsset,然后将其传递给 deleteAssets 方法。我没有检查过,但认为这就是它的工作方式。检查这个 - ***.com/questions/28661938/… 我试过 PHFetchResult *asset = [[PHAsset fetchAssetsWithALAssetURLs:@[info[@"UIImagePickerControllerReferenceURL"]] options:nil] firstObject]; NSLog(@"资产 %@",资产);和我得到的输出:我终于能够删除仅适用于 iOS8 的资产/专辑视频文件。
你可以在didFinishPickingMediaWithInfo方法中添加这个
PHFetchResult *asset = [[PHAsset fetchAssetsWithALAssetURLs:@[info[@"UIImagePickerControllerReferenceURL"]] options:nil] firstObject];
NSLog(@"asset %@",asset);
[self toggleFavoriteForAsset:(PHAsset *)asset];
并添加一种删除资产视频的方法
- (void)toggleFavoriteForAsset:(PHAsset *)asset
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^
// Create a change request from the asset to be modified.
BOOL req = [asset canPerformEditOperation:PHAssetEditOperationDelete];
if (req)
NSLog(@"true");
[PHAssetChangeRequest deleteAssets:@[asset]];
completionHandler:^(BOOL success, NSError *error)
NSLog(@"Finished Delete asset. %@", (success ? @"Success." : error));
];
【讨论】:
以上是关于从资产或相册中删除一个视频的主要内容,如果未能解决你的问题,请参考以下文章