美文网首页
PHPhotoLibrary操作

PHPhotoLibrary操作

作者: hie | 来源:发表于2019-06-05 14:18 被阅读0次

导入系统库头文件 :

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);
        }
    }];
    
}

相关文章

网友评论

      本文标题:PHPhotoLibrary操作

      本文链接:https://www.haomeiwen.com/subject/tpojxctx.html