我正在使用GPUImage库来开发iOS相机应用程序。
我发现有时应用程序崩溃了GPUImageContext。 我通过Crashlytics Crash报告注意到了这一点, 和应用程序崩溃在GPUImageContext.m第196行,方法下面。
- (void)presentBufferForDisplay;
{
[self.context presentRenderbuffer:GL_RENDERBUFFER];
}
我在下面的问题中确认了,但我支持下面的案例 Mysterious app crash with OpenGL
有人建议这次崩溃的原因吗? 我收到崩溃报告,大多数崩溃(90%)发生在iPod。
答案 0 :(得分:3)
当您的应用程序在后台运行(暂停)时,您根本无法访问OpenGL ES。 GPUImage使用OpenGL ES来完成它所做的一切。您必须确保应用程序使用GPUImage(过滤视频,处理图像)完成的所有工作都在应用程序完成向后台过渡之前完成。
您需要侦听UIApplicationWillResignActiveNotification或填写相关的委托回调以转换到后台,并在那里暂停任何相机捕获(通过相机输入上的-pauseCameraCapture方法)或等待任何处理完成(我相信对GPUImage串行调度队列的同步调度将处理这个问题。
相关的讨论可以在GitHub问题页面上找到:https://github.com/BradLarson/GPUImage/issues/197以及几个相关问题。