如何将视频保存到 Swift Playgrounds 中的 URL
How to save a video to a URL in Swift Playgrounds
我正在尝试实例化 PHLivePhoto
,但每当我尝试保存构成实时照片的视频时,我都无法使用它。
这是我编写的一小段代码片段,用于处理导出 视频:
public func exportFilteredVideo(to outputURL: URL, completion: @escaping (Void) -> Void) {
if FileManager.default.fileExists(atPath: outputURL.path) {
try? FileManager.default.removeItem(at: outputURL)
}
let export = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetMediumQuality)!
export.outputFileType = AVFileTypeQuickTimeMovie
export.outputURL = outputURL
export.videoComposition = generateComposition()
export.exportAsynchronously(completionHandler: completion)
}
这是我尝试检索视频的时候:
let destURL = url.deletingLastPathComponent().appendingPathComponent("Test.mov")
pixellationFilter.exportFilteredVideo(to: destURL) {
print(try! destURL.checkResourceIsReachable()) //An error is thrown! Why though, isn't the export completed?
}
目前,我怀疑您可能无法写入指定的 URL
。然而,我的理解是每当我想创建一个 PHLivePhoto
对象时,我需要将资源指定为 URL
而不是 Data
。如果可能的话,我将能够使用数据而不是将其导出到 URL
。我可能是错的,但我并没有真正找到一种方法来创建 PHLivePhoto
和 Data
。有一个 PHAssetResource
class 但这只会帮助获取 PHLivePhoto
的数据文件而不是创建 PHLivePhoto
.
所以我认为目前可能的解决方案是:
- 弄清楚如何将视频另存为
URL
。
- 尝试通过
Data
而不是 URL
创建实时照片。
fileURL 就是数据所在的位置。只需将数据写入 temporary folder 并将该文件 url 传递给该方法。
我正在尝试实例化 PHLivePhoto
,但每当我尝试保存构成实时照片的视频时,我都无法使用它。
这是我编写的一小段代码片段,用于处理导出 视频:
public func exportFilteredVideo(to outputURL: URL, completion: @escaping (Void) -> Void) {
if FileManager.default.fileExists(atPath: outputURL.path) {
try? FileManager.default.removeItem(at: outputURL)
}
let export = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetMediumQuality)!
export.outputFileType = AVFileTypeQuickTimeMovie
export.outputURL = outputURL
export.videoComposition = generateComposition()
export.exportAsynchronously(completionHandler: completion)
}
这是我尝试检索视频的时候:
let destURL = url.deletingLastPathComponent().appendingPathComponent("Test.mov")
pixellationFilter.exportFilteredVideo(to: destURL) {
print(try! destURL.checkResourceIsReachable()) //An error is thrown! Why though, isn't the export completed?
}
目前,我怀疑您可能无法写入指定的 URL
。然而,我的理解是每当我想创建一个 PHLivePhoto
对象时,我需要将资源指定为 URL
而不是 Data
。如果可能的话,我将能够使用数据而不是将其导出到 URL
。我可能是错的,但我并没有真正找到一种方法来创建 PHLivePhoto
和 Data
。有一个 PHAssetResource
class 但这只会帮助获取 PHLivePhoto
的数据文件而不是创建 PHLivePhoto
.
所以我认为目前可能的解决方案是:
- 弄清楚如何将视频另存为
URL
。 - 尝试通过
Data
而不是URL
创建实时照片。
fileURL 就是数据所在的位置。只需将数据写入 temporary folder 并将该文件 url 传递给该方法。