PHLivePhoto
をインスタンス化しようとしていますが、ライブ写真を構成するビデオを保存しようとすると、動作できなくなります。私は動画検索しようとすると、Swift PlaygroundsのURLにビデオを保存するには
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
オブジェクトを作成したいときは、Data
の代わりにURL
というリソースを指定する必要があるということです。これが可能であれば、データを代わりにURL
にエクスポートする代わりに使用することができます。私は間違っている可能性がありますが、実際にでPHLivePhoto
を作成する方法を見つけることはできません。 PHAssetResource
クラスがありますが、PHLivePhoto
のデータファイルがPHLivePhoto
を作成しないようにするのに役立ちます。
だから私はこの時点で信じている私の可能な解決策は以下のとおりです。私はURL
としてビデオを保存することができますどのように
- 図アウト。
URL
の代わりにData
でライブフォトを試してみてください。
fileURLデータがあるところです –
@LeoDabus合意しましたが、 'PHLivePhoto'を作成する際、このメソッドを使用する必要があります:' request(リソースファイルのURL:プレースホルダーImage:targetサイズ:コンテンツモード:結果ハンドラ:) '。見ての通り、 'Data'の代わりに' [URL] 'を引数にとります。 – Harish
@LeoDabusここに関連文書があります:https://developer.apple.com/reference/photos/phlivephoto/1616434-request – Harish