小编ter*_*ma9的帖子

我如何知道generateCGImages异步完成的时间?

我需要拍摄视频,将每个帧转换为图像并将这些图像保存到磁盘.我想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​​来了解每个帧何时被处理?也许只是我错过的东西?任何指导或建议将不胜感激.

avfoundation ios avasset avassetimagegenerator swift

5
推荐指数
1
解决办法
1735
查看次数