Tag: phasset

照片框架정리

框架照片 iCloud照片库 및 实时 照片및照片관 관리되는图像및视频资产을가지고다。 의기의资产또는缩略图이비동지를기비동로하며리하며,내용을정수,수정된기합니다합니다。 개요 iOS,macOS , Photos框架, Photos和사진능 을 능을능을원하는 。。 iOS操作系统, Photos框架 , Photos框架, iCloud Photo Library和照片资产,视频资产和软件。 架构,显示,回放,资产,图像,视频内容,iCloud和资产集合。 특징&개념 iOS的tvOS, Photos框架和 照片库中的照片库 。 相片库 :相片框架模型相片库( PHAsset , PHAssetCollection和PHCollectionList )相片库相片项目(资产(图像,视频,实时照片)),资产收藏夹(相册)或moment들),그리고集合리스트(相册文件夹moment或moment모음들)이다。 이읽기전용이며,변경불가능(不可变)이며,오직元数据만다。 하는터를터를터를용하여용하여용하여하는하는하는。고다 h h h ary h h PHPhtoLibrary 명시적으로커밋합니다。 동일한동일한。동일한동일한동일한동일한동일한。있습니다。다。다 类别 :PHPhotoLibrary类别资产集合更改处理程序。 照片框架资产内容元数据集合资产资产资产。 PHChange Collection view를를view를객체Collection Collection Collection Collection。유유를를를트트다 照片앱의기능들지원。 […]

用NSUrl获取video文件的NSData

我有path文件 var/mobile/Media/DCIM/100APPLE/IMG_0292.MOV 我想获得这个文件的NSData,但我得到错误 错误域= NSCocoaErrorDomain代码= 257“文件”IMG_0292.MOV“无法打开,因为您没有权限查看它。 UserInfo = {NSFilePath = / var / mobile / Media / DCIM / 100APPLE / IMG_0292.MOV,NSUnderlyingError = 0x178c9f90 {Error Domain = NSPOSIXErrorDomain Code = 1“Operation not permitted”}} 我试着用 NSError *error; NSData *videoData = [NSData dataWithContentsOfFile:path options:NSDataReadingMappedAlways error:&error]; 和 NSError* error = nil; NSData* data = [NSData dataWithContentsOfURL:fileURL options:NSDataReadingUncached error:&error]; […]

如何从PHAsset中获取video是否为横向/纵向?

我从PHAsset获取video,以便用户可以selectvideo并导入进行编辑。 但用户只能select具有横向导航的video,如果用户select纵向video,他/她会得到警报信息,说明其纵向video,因此不能导入编辑。 一种方法是从PHFetchResults的URL创buildAVAsset,然后检查一个首选转换,但是这样做的代价是非常昂贵的。 有没有办法做到这一点,而不创buildAVasset?

隐藏UIProgressView提取PHAsset完成后,进度完成animation

我正在执行一个请求,以获得一个PHAsset的图像资产,而且我正在使用UIProgressView来使用progressHandler PHImageRequestOptions允许我提供的progressHandler 。 当这个处理程序被调用时,它提供了progress所以我在进度视图上设置了进度,但是我也通过setProgress:animated:设置了这个新进度的setProgress:animated: 我现在需要弄清楚一旦进度达到了1.0,如何隐藏进度视图,但是直到它完成animation到1.0为止。 例如,它可能开始下载资产,用0.2调用进度callback,然后下一个callback可能是1.0。 如果我一收到1.0就隐藏进度条,用户就不会看到1.0的animation,它可能在0.7时消失。 我的问题是,我怎么知道什么时候它已经完成了新的进度值的animation,因此知道什么时候隐藏进度视图? let options = PHImageRequestOptions() options.networkAccessAllowed = true options.progressHandler = { (progress: Double, _, _, _) -> Void in dispatch_async(dispatch_get_main_queue()) { self.barProgressView.setProgress(Float(progress), animated: true) //FIXME: Can't do this, otherwise it will hide before animation completes self.barProgressView.hidden = (progress <= 0.0 || progress >= 1.0) } } PHImageManager.defaultManager().requestImageForAsset(photoAsset, targetSize: […]

IOS照片框架

我想从设备上的所有本地相册中检索所有照片。 基本上所有的设备上的照片将本地标识符的列表是唯一的? 什么是使用照片框架的最佳方法。 我的问题是不重复的,因为另一个问题也谈到不在设备上的云资产和资产。 当检索图像的实际数据时,它在尝试获取同步时返回空数据。

从iCloud上传PHAsset(即不在本地设备上)

我想上传一个PHAsset到服务器。 现在我的PHAsset可以是照片或video。 我能够成功地为本地设备上存在的PHAssets做到这一点。 但是,如果PHAsset不在本地设备上,而是出现在iCloud上。 我们可以直接从iCloud上传到服务器,还是必须先下载到本地设备,然后再上传到服务器。 另外,如果有人能告诉我如何做到这一点,我将不胜感激。 更新:当我们允许networking访问下载图像forms的iCloud我得到这个错误。 { PHImageErrorKey = "Error Domain=CloudPhotoLibraryErrorDomain Code=1000 \"Error fetching asset with identifier: AUXxudUWWzHheX1dXyRDgXpZN5ty\" UserInfo={NSLocalizedDescription=Error fetching asset with identifier: AUXxudUWWzHheX1dXyRDgXpZN5ty, NSUnderlyingError=0x7fb00a5e9480 {Error Domain=CKErrorDomain Code=6 \"Fetching asset failed\" UserInfo={NSLocalizedDescription=Fetching asset failed, NSUnderlyingError=0x7fb00a511600 {Error Domain=CKInternalErrorDomain Code=2022 \"Fetching asset failed\" UserInfo={NSLocalizedDescription=Fetching asset failed, NSUnderlyingError=0x7fb00a5b6fc0 {Error Domain=com.apple.mmcs Code=16 \"(null)\"}}}}}}"; PHImageResultDeliveredImageFormatKey = 0; PHImageResultIsInCloudKey = […]

检查给定的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资产?

通过UIActivityController共享视​​频PHAsset

我正尝试使用requestAVAsset通过UIActivityController共享videoPHAsset 。 这适用于消息传递,但不适用于AirDrop,指示为“失败”。 PHCachingImageManager.default().requestAVAsset(forVideo: asset, options: nil, resultHandler: { (givenAsset, audioMix, info) in let videoAsset = givenAsset as! AVURLAsset let videoURL = videoAsset.url DispatchQueue.main.async { let activityViewController = UIActivityViewController( activityItems: [videoURL], applicationActivities: nil) activityViewController.excludedActivityTypes = [UIActivityType.saveToCameraRoll] if let popoverPresentationController = activityViewController.popoverPresentationController { popoverPresentationController.barButtonItem = (sender) } self.present(activityViewController, animated: true, completion: nil) } }) 这似乎正确地build立了UIActivityController ,只能用于某些活动: […]

Swift – 从iOS PHAsset播放video

我想从PHAsset播放来自iOS照片的video。 PHAssetvideonsurl ( https://stackoverflow.com/a/35099857/1084174 )是有效的我自己的应用程序可以说MyPlayer的片刻/块。 当我将图像/video复制到MyPlayers自己的沙盒中时, nsurl总是有效的。 在我看来, 我需要将每个video从临时PHAsset复制到MyPlayers沙盒(appgroup / documents),然后才能使用沙盒相关nsurl播放video。 如果是这样,所有其他玩家如何在飞行中播放长video? 如果有其他方式播放video而不复制到应用程序沙盒,请让我知道的方式。

仅提取PHAssetMediaTypeImagetypes资产收集typesPHAssetCollectionTypeSmartAlbumtypes的照片

我正在使用照片框架在iOS8中获取相册列表。 我能够使用它 PHFetchResult *smartAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil]; 这给我一个所有的智能相册,包括video列表。 我如何从这个列表中筛选出video。 我只需要图像。 帮助将不胜感激。 谢谢。