使用OpenGL的神秘应用程序崩溃

时间:2013-10-15 10:59:12

标签: ios cocoa-touch opengl-es gpuimage

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

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

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

1 个答案:

答案 0 :(得分:9)

当您的应用程序在后台运行(暂停)时,您根本无法访问OpenGL ES。 GPUImage使用OpenGL ES来完成它所做的一切。您必须确保应用程序使用GPUImage(过滤视频,处理图像)完成的所有工作都在应用程序完成向后台过渡之前完成。

您需要侦听UIApplicationWillResignActiveNotification或填写相关的委托回调以转换到后台,并在那里暂停任何相机捕获(通过相机输入上的-pauseCameraCapture方法)或等待任何处理完成(我相信同步调度到GPUImage串行调度队列将处理这个)。

相关的讨论可以在GitHub问题页面上找到:https://github.com/BradLarson/GPUImage/issues/197以及几个相关问题。