6

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

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

这次崩溃的可能原因是什么?我已经设置了一个非常长的相机,并且代码本身就在GPUImageContext课堂上。我在这里可能做错了什么?

4

1 回答 1

9

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

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

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

于 2013-10-15T17:15:34.180 回答