我需要拍摄视频,将每一帧转换为图像并将这些图像保存到磁盘。为了提高效率,我想使用AVAssetImageGenerator
,并且代码类似于以下内容:
问题是我不知道所有图像生成何时完成,但是一旦所有帧都写入磁盘,我就需要采取行动。例如:
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 来了解每一帧的处理时间?也许只是我错过了什么?任何指导或建议将不胜感激。