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