OGeek|极客世界-中国程序员成长平台

标题: ios - 在 PHPhotoLibrary 中,如何知道视频文件是否可以保存在 iPhone 上 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 11:43
标题: ios - 在 PHPhotoLibrary 中,如何知道视频文件是否可以保存在 iPhone 上

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

- (BOOL)videoAtPathIsCompatibleWithSavedPhotosAlbumNSURL *)videoPathURL;

有谁知道 PHPhotoLibraryvideoAtPathIsCompatibleWIthSavedPhotoAlbum 的替代 API 吗?

或者您知道确切的错误代码,这意味着视频文件无法保存在 iOS 设备上吗?

我保存视频文件的代码如下,

- (void)saveVideoFileNSURL *)videoURL completionsavePhotoFileCompletion)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

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



Best Answer-推荐答案


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

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

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

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

谢谢。

关于ios - 在 PHPhotoLibrary 中,如何知道视频文件是否可以保存在 iPhone 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38293852/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4