我正在尝试进行屏幕捕获并将许多图像保存到NSMutableArray中。然后,我将调用这些图像并制作视频。我可以成功制作视频。但是,问题是我无法将许多图像保存到NSMutableArray中。应用程序崩溃。我想知道如何暂时保存这些图像。 (不在文档目录中)。
答案 0 :(得分:2)
如果您尝试将所有这些图像存储在数组中,您将很快耗尽内存。您有两种选择:
即使您说您不想将所有这些图像保存到Documents文件夹,这可能是您最好的方法。将它们保存到文档,然后让您的视频创建过程一次加载一个图像并将它们添加到视频中。
或者,您可以将视图的renderInContext
直接捕获到您为CGContextRef
设置的CVPixelBufferRef
,执行{ {1}},然后立即appendPixelBuffer
。
这些方法中的任何一种都将避免在任何给定时间将所有图像保存在内存中,从而减少内存不足的情况。我分析了这两种方法,并且每种方法都避免了不断增长的内存消耗,即将图像加载到阵列中会受到影响。