我有一個需要拍攝視頻,將每幀轉換爲圖像並將這些圖像保存到磁盤。我想使用AVAssetImageGenerator
效率的緣故,並有類似的代碼如下:如何知道generateCGImages異步完成的時間?
的問題是,我不知道什麼時候所有圖像生成完成,但我需要採取行動,一旦所有幀寫入磁盤。例如:
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