0

我已经搜索并找到了一些可以获取 LivePhoto 资产的视频资产/文件的方法。但是这些方法的作用如下:

  1. 他们以某种方式获取 LivePhoto 资产的资源(PHAssetResource)
  2. 从以前找到的资源中选择特定的视频资源(PHAssetResource)。(例如resource.type==PHAssetResourceTypePairedVideo:)
  3. 将资源数据保存到新文件(!)
  4. 获取新创建的文件的 URL。

但是,我想知道的是,有什么方法可以在创建新文件的情况下获取原始存储文件 URL 的 URL?

[对于其他类型的照片/视频,我可以获得原始存储文件的 URL。问题在于 LivePhoto 资产的视频。]

4

1 回答 1

0

我找到了一种直接获取文件原始URL的方法。无需将文件内容保存在新文件中。(iOS12+测试)

  1. 我们首先获取LivePhoto的关联Image的文件URL
asset.requestContentEditingInput(with: nil) { (editingInput, info) in
    if let input = editingInput, let imgUrl = input.fullSizeImageURL {
        // use imgUrl
    }
}
  1. 视频文件与图像文件存储在同一目录中。因此,我们使用带有不同扩展名的图像 URL来查找LivePhoto的视频文件。视频文件扩展名是.mov.MOV
if let videoPath = (imagePath.deletingPathExtension as NSString).appendingPathExtension("MOV") {
    let videoUrl = URL(fileURLWithPath: videoPath)
    // check if file exist and use
    // If MOV(Uppercase) extension file doesn't exist check for mov(lowercase) extension similarly
}
于 2021-07-14T06:28:08.667 回答