神秘的应用程序与OpenGL崩溃

我正在使用GPUIImage库来开发iOS相机应用程序。 有时,当应用程序在2-3分钟后暂停时,Xcode会在应用程序中给我一个崩溃,指向方法中的行:

 - (void)presentBufferForDisplay; { [self.context presentRenderbuffer:GL_RENDERBUFFER]; } 

什么可能是这次事故的原因? 我有一个非常长的相机设置,代码本身在GPUImageContext类。 我可能在这里做错了什么?

当您的应用程序在后台运行(暂停)时,您根本无法访问OpenGL ES。 GPUImage使用OpenGL ES处理所有事情。 您必须确保您的应用程序正在使用GPUImage(过滤video,处理图像)所做的所有工作都是在应用程序完成向后台的转换之前完成的。

你需要听取UIApplicationWillResignActiveNotification或填写相关的代表callback过渡到后台,并在那里暂停任何摄像头捕获(通过相机上的-pauseCameraCapture方法input)或等待任何处理完成(我相信同步调度到GPUImage的串行调度队列将照顾到这一点)。

相关的讨论可以在这里的GitHub问题页面上find: https : //github.com/BradLarson/GPUImage/issues/197和几个相关的问题。