我需要拍摄视频,将每个帧转换为图像并将这些图像保存到磁盘.我想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
})
Run Code Online (Sandbox Code Playgroud)
这是上面的第二步,这让我感到沮丧.我想我可以尝试计算调用完成处理程序的次数,并在计数等于帧数时触发适当的方法.
但我想知道是否有办法使用API来了解每个帧何时被处理?也许只是我错过的东西?任何指导或建议将不胜感激.