私はビデオを撮影し、各フレームを画像に変換し、これらの画像をディスクに保存する必要があります。私は、効率のためにAVAssetImageGenerator
を使用したい、と次のようなコードを持っていると思います:generateCGImagesAsynchronouslyが完全に終了したときは、どうすればわかりますか?
問題がすべて画像生成が完了したとき、私は知らないということですが、私は一度、すべてのフレームを行動を取る必要がありますディスクに書き込まれます。例:
assetGenerator.generateCGImagesAsynchronously(forTimes: frameTimes, completionHandler: { (requestedTime, image, actualTime, result, error) in
// 1. Keep a reference to each image
// 2. Wait until all images are generated
// 3. Process images as a set
})
これは、私を驚かせる上のステップ2です。補完ハンドラが呼び出される回数を数え、その数がフレーム数に等しいときに適切なメソッドをトリガすることができます。
しかし、すべてのフレームがいつ処理されたかを知るためにAPIを使用する方法があるのでしょうか?多分私が逃した何か?あらゆる指導やアドバイスをいただければ幸いです。
ありがとうございます、これはより良いソリューションのようです。 – terrafirma9
良い答えです。できます。 – Leo