Tag: photosframework

NSPredicate从PHFetchResults中排除慢动作video

NSString *predicateFormat = [NSString stringWithFormat: @"mediaSubtype = %zd", PHAssetMediaSubtypeVideoHighFrameRate]; NSPredicate *predicate = [NSPredicate predicateWithFormat: predicateFormat]; PHFetchOptions *fetchOptions = [PHFetchOptions new]; fetchOptions.predicate = predicate; PHFetchResult *userAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeSmartAlbumVideos options:fetchOptions]; 这是我的代码,以获取排除慢动作video的video。 但是我得到下面的错误。即使我这样做,这也行不通, PHFetchOptions *fetchOptions = [PHFetchOptions new]; fetchOptions.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype & %d) == 0", PHAssetMediaSubtypeVideoHighFrameRate]; 有人请帮忙。 提前致谢。 Unsupported predicate in fetch options: mediaSubtype == […]

在PhotoKit中删除:你可以跳过“最近删除”?

从iOS8开始,当你删除一张照片时,它会进入一个名为“最近删除”的垃圾桶模拟。 当您通过Photos.app或通过PhotoKit API(使用PHAssetChangeRequest.deleteAssets() )删除时,会发生这种情况。 在Photos.app,你可以进入“最近删除”,并真正删除该照片。 有没有办法在PhotoKit中做到这一点?

从自定义相册中删除图像PHPhotoLibrary目标C

在我的应用程序中,我使用编辑图片并保存在名为“Fab”的库中的自定义文件夹中。 现在有什么东西从文件夹中删除该图像? 我find了不同的解决scheme,但他们需要资产的URL。 我使用的照片框架,以便如何获取特定图像的资产url删除?

检查给定的PHAsset是否是iCloud资产?

我试图获得PhAsset对象。 我想分离iCloud资产。 这是我的代码, PHFetchResult *cloudAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAny options:nil]; [cloudAlbums enumerateObjectsUsingBlock:^(PHAssetCollection *collection, NSUInteger idx, BOOL *stop){ if(collection != nil){ PHFetchResult *result = [PHAsset fetchAssetsInAssetCollection:collection options:fetchOptions]; [result enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) { // check asset is iCloud asset }]; } }]; 请告诉我如何findPHAsset是iCloud资产?

iPhone:照片框架:如何只获取由我的应用程序创build的相册/图像而不是其他人?

我正在创build像照片应用程序的应用程序。 我的应用程序创build相册并捕获图像,并将其保存在照片应用程序中的相册中。 为此,我正在使用Photos框架。 当我提取相册时,会给我提供由我的应用程序以及其他应用程序创build的相册。 所以我只想要那些由我的应用程序创build的专辑/图片,而不是其他应用程序。

使用照片框架从图库上传video

使用Photos框架从图库上传video的最佳方式是什么? 在我使用ALAssetRepresentation和下一个方法之前: – (NSUInteger)getBytes:(uint8_t *)buffer fromOffset:(long long)offset length:(NSUInteger)length error:(NSError **)error; 这允许上传文件,而无需先将其复制到应用程序临时目录。 在照片框架中看不到任何替代品。 唯一的办法似乎使用AVAssetExportSession – >导出到本地目录 – >上传,但这需要额外的存储空间(如果video太大可能是一个问题)

将PHAsset(video)同步转换为AVAsset

我需要使用AVAsset对象,才能使用AVPlayer和AVPlayerLayer进行播放。 由于AssetsLibrary已被弃用,我开始使用Photos框架。 现在我已经到了我有一个PHAsset对象的数组,我需要将它们转换为AVAsset。 我尝试通过PHFetchResult枚举并使用PHAsset的本地化描述来分配一个新的AVAsset,但是当我播放它时似乎没有显示任何video。 PHAssetCollection *assetColl = [self scaryVideosAlbum]; PHFetchResult *getVideos = [PHAsset fetchAssetsInAssetCollection:assetColl options:nil]; [getVideos enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) { NSURL *videoUrl = [NSURL URLWithString:asset.localizedDescription]; AVAsset *avasset = [AVAsset assetWithURL:videoUrl]; [tempArr addObject:avasset]; }]; 我假设本地化的描述不是video的绝对url。 我也偶然发现了PHImageManager和requestAVAssetForVideo,但是,当涉及video的选项参数没有isSynchrounous属性时,图像选项参数就是这种情况。 PHVideoRequestOptions *option = [PHVideoRequestOptions new]; [[PHImageManager defaultManager] requestAVAssetForVideo:videoAsset options:option resultHandler:^(AVAsset * _Nullable avasset, AVAudioMix * _Nullable audioMix, […]

如何通过照片框架快速循环照片库

我有一个应用程序为我的应用程序上的每张票创build一个独特的照片库。 我需要弄清楚如何在图库中循环,这样我就可以一次将图像上传到服务器。 我在YouTube上跟随了这些教程。 ( video )我目前使用Swift作为我的语言。 我的最终目标将是像下面的伪代码。 //I need the following for loop example for photo in gallery { uploadToServer(photo) } //this function works already func uploadToServer(photo:UIImage) { callRest postPhoto } 这里是我的代码到目前为止无法弄清楚如何循环。 他们虽然。 let fetchOptions = PHFetchOptions() fetchOptions.predicate = NSPredicate(format: "title = %@", self.albumName)? let collection:PHFetchResult = PHAssetCollection.fetchAssetCollectionsWithType(.Album, subtype: .Any, options: fetchOptions) if let first_Obj:AnyObject […]

如何确定iOS8中videoPHAsset的磁盘上的文件大小

我可以使用iOS8中的Photos框架来请求一个videoPHAsset。 我想知道文件在磁盘上有多大。 似乎没有PHAsset的属性来确定这一点。 有没有人有办法解决吗? (不需要使用照片框架)

如何像ALAssetsLibrary一样使用PHPhotoLibrary

对于iOS9,不推荐使用ALAssetsLibrary 。 那么如何将它改为PHPPhotoLibrary而不是ALAssets呢? if (RecordedSuccessfully && recording == NO) { //—– RECORDED SUCESSFULLY —– NSLog(@"didFinishRecordingToOutputFileAtURL – success"); ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:outputFileURL]) { [library writeVideoAtPathToSavedPhotosAlbum:outputFileURL completionBlock:^(NSURL *assetURL, NSError *error) { if (error) { } }]; } //我已经试过这个,但没有工作 [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ PHAssetChangeRequest* createAssetRequest = [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:outputFileURL]; NSParameterAssert(createAssetRequest); } completionHandler:^(BOOL success, NSError *error) […]