除了相机胶卷,如何从 iPhone 中获取所有资产?

Posted

技术标签:

【中文标题】除了相机胶卷,如何从 iPhone 中获取所有资产?【英文标题】:How to fetch all assets from iPhone apart from camera roll? 【发布时间】:2018-06-19 10:01:14 【问题描述】:

如何从包括图片和视频在内的所有相册中获取资源?

let fetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)]
let allPhotos = PHAsset.fetchAssets(with: .image, options: fetchOptions)

此代码将仅从相机胶卷中获取图像。

【问题讨论】:

【参考方案1】:

您可以使用此代码从 iPhone 获取所有资产。

phphotoLibrary.shared().register(self as PHPhotoLibraryChangeObserver)

        if fetchResult == nil 

            let allPhotosOptions = PHFetchOptions()
            allPhotosOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
            fetchResult = PHAsset.fetchAssets(with: allPhotosOptions)
        

【讨论】:

这将获取所有图像和视频,但不是所有来自其他专辑的图像和视频,例如 .sync 专辑。【参考方案2】:

我们可以获取所有照片,包括同步相册和用户相册。

let fetchOptions = PHFetchOptions()
    fetchOptions.includeAssetSourceTypes = [.typeUserLibrary, .typeiTunesSynced, .typeCloudShared]
    let fetchResult = PHAsset.fetchAssets(with: fetchOptions)

fetchResult 将包含所有相册中的所有照片和视频。

【讨论】:

以上是关于除了相机胶卷,如何从 iPhone 中获取所有资产?的主要内容,如果未能解决你的问题,请参考以下文章

从 iPhone 相机胶卷中获取图像

如何将视频保存到相机胶卷并获取资产 URL?

将图像保存在相机胶卷中并获取资产 url

科尔多瓦,从相机胶卷中获取所有照片

当我在设备上运行程序时,AssetsLibrary 没有获取保存在相机胶卷中的图像

检测 iPhone 相机方向