2

我正在从 ALAssetsLibrary 切换到 PHPhotoLibrary 并想知道视频文件是否可以保存。在ALAssetsLibray中,你知道,我们可以在开始使用 API 保存视频文件之前知道它

- (BOOL)videoAtPathIsCompatibleWithSavedPhotosAlbum:(NSURL *)videoPathURL;

有谁知道PHPhotoLibraryvideoAtPathIsCompatibleWIthSavedPhotoAlbum的替代 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);
        }];
}

我发现这个问题在谈论同样的问题。

如何像 ALAssetsLibrary 一样使用 PHPhotoLibrary

但它没有提到确切的答案。

4

1 回答 1

4

我通过 TSI 向 Apple 提出了我的问题。他们的答案是使用以下 API

AVAsset *avAsset = [AVAsset assetWithURL:[NSURL fileURLWithPath:videoPath]];
BOOL canSaveVideo = [avAsset isCompatibleWithSavedPhotosAlbum];

看来我可以获得正确的兼容性。

重要的一点是,即使值为canSaveVideoNO,PHPhotoLibrary 也可以保存视频。

谢谢你。

于 2016-08-01T05:13:53.697 回答