我正在使用GPUIImage库来开发一个iOS相机应用程序。有时,当应用程序在2-3分钟后被挂起时,Xcode会让我在应用程序上崩溃,并指向方法中的行:
- (void)presentBufferForDisplay;
{
[self.context presentRenderbuffer:GL_RENDERBUFFER];
} 这次坠机的原因可能是什么?我已经设置了一个很长的摄像头,代码本身也在GPUImageContext类中。我在这里可能做错了什么?
发布于 2013-10-15 17:15:34
当应用程序在后台运行(挂起)时,根本无法访问OpenGL ES。GPUImage所做的一切都使用OpenGL ES。您必须确保应用程序使用GPUImage (过滤视频,处理图像)所做的所有工作都是在应用程序完成其向后台的转换之前完成的。
您需要侦听UIApplicationWillResignActiveNotification或填写相关的委托回调,以便转换到后台,并在其中暂停任何相机捕获(通过相机输入的-pauseCameraCapture方法)或等待任何处理完成(我相信进入GPUImage串行调度队列的同步调度会解决这个问题)。
与此相关的讨论可以在GitHub page页面中找到:https://github.com/BradLarson/GPUImage/issues/197和几个相关的问题。
https://stackoverflow.com/questions/19379541
复制相似问题