在 PHPhotoLibrary 中,如何知道视频文件是不是可以保存在 iPhone 上
Posted
技术标签:
【中文标题】在 PHPhotoLibrary 中,如何知道视频文件是不是可以保存在 iPhone 上【英文标题】:In PHPhotoLibrary, how to know whether video file can save on iPhone or not在 PHPhotoLibrary 中,如何知道视频文件是否可以保存在 iPhone 上 【发布时间】:2016-07-10 16:07:43 【问题描述】:我正在从 ALAssetsLibrary 切换到 phphotoLibrary,想知道视频文件是否可以保存。 在 ALAssetsLibray 中,您知道,我们可以在开始使用 API 保存视频文件之前知道它
- (BOOL)videoAtPathIsCompatibleWithSavedPhotosAlbum:(NSURL *)videoPathURL;
有谁知道 PHPhotoLibrary 中 videoAtPathIsCompatibleWIthSavedPhotoAlbum 的替代 API 吗?
或者您是否知道意味着视频文件无法保存在 ios 设备上的确切错误代码?
我保存视频文件的代码如下,
- (void)saveVideoFile:(NSURL *)videoURL completion:(savePhotoFileCompletion)completion
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^
PHAssetChangeRequest *assetChangeRequest;
assetChangeRequest = [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:videoURL];
PHAssetCollectionChangeRequest *assetCollectionChangeRequest =
[PHAssetCollectionChangeRequest changeRequestForAssetCollection:self.assetCollection];
[assetCollectionChangeRequest addAssets:@[ [assetChangeRequest placeholderForCreatedAsset] ]];
completionHandler:^(BOOL success, NSError *_Nullable error)
DBGLog(@"success=%@, error=%@", (success ? @"YES" : @"NO"), error);
completion(success, error);
];
我发现这个问题谈论的是同一个问题。
How to use PHPhotoLibrary like ALAssetsLibrary
但它并没有提到确切的答案。
【问题讨论】:
【参考方案1】:我通过 TSI 向 Apple 提出了我的问题。 他们的答案是使用以下 API
AVAsset *avAsset = [AVAsset assetWithURL:[NSURL fileURLWithPath:videoPath]];
BOOL canSaveVideo = [avAsset isCompatibleWithSavedPhotosAlbum];
看来我可以得到正确的兼容性。
重要的一点是即使canSaveVideo
的值为NO,PHPhotoLibrary 也可以保存视频。
谢谢。
【讨论】:
以上是关于在 PHPhotoLibrary 中,如何知道视频文件是不是可以保存在 iPhone 上的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS9 中使用 PHPhotolibrary 将照片保存在带有元数据的相册中?