导入系统库头文件 :
import <Photos/Photos.h>
1.获取对应名称的相册
/**
albumName:相册名称,没有则创建该相册
*/
+ (PHAssetCollectionChangeRequest *)photoCollectionWithAlbumName:(NSString *)albumName {
// 创建搜索集合
PHFetchResult *result = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];
//遍历相册,获取对应相册的changeRequest
for (PHAssetCollection *assetCollection in result) {
if ([assetCollection.localizedTitle containsString:albumName]) {
PHAssetCollectionChangeRequest *collectionRuquest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:assetCollection];
return collectionRuquest;
}
}
//不存在,创建albumName为名的相册changeRequest
PHAssetCollectionChangeRequest *collectionRequest = [PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle:albumName];
return collectionRequest;
}
2.沙盒视频写入相册
/**
videoURL:视频的沙盒路径
completionHandler:操作回调
*/
+ (void)lxj_writeVideoToAssetsLibrary:(NSURL *)videoURL completionHandler:(nullable void(^)(BOOL success, NSError *__nullable error))completionHandler{
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
//请求创建一个Asset
PHAssetChangeRequest *assetRequest = [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:videoURL];
//视频存储的相册
PHAssetCollectionChangeRequest *collectonRequest = [PHPhotoLibrary photoCollectionWithAlbumName:@"相册名"];
//为Asset创建一个占位符,放到相册编辑请求中
PHObjectPlaceholder *placeHolder = [assetRequest placeholderForCreatedAsset];
//相册中添加视频
[collectonRequest addAssets:@[placeHolder]];
} completionHandler:^(BOOL success, NSError *error) {
if (completionHandler) {
completionHandler(success,error);
}
}];
}
网友评论