老版本GPUImage进入后台闪退问题

这个BUG新版本已经解决,在老版本中会存在这个问题,原因是GPUImage是基于OpenGL 的,而OpenGL ES在进入后台后是直接退出的,所以需要注册通知监听程序进入后台(UIApplicationWillResignActiveNotification)和进入前台(UIApplicationDidBecomeActiveNotification),然后做出相应的动作。
通过下面方法即可解决相机界面进入后台崩溃的问题。

[[NSNotificationCenter defaultCenter] addObserver:_aSharedJLXCommonTools selector:@selector(pauseRecord) name:UIApplicationWillResignActiveNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:_aSharedJLXCommonTools selector:@selector(resumeRecord) name:UIApplicationDidBecomeActiveNotification object:nil];

如果是在打开相机界面的崩溃

- (void)goToBack

{

  [self.stillCamera pauseCameraCapture];

  [self.stillCamera stopCameraCapture];

  runSynchronouslyOnVideoProcessingQueue(^{

      glFinish();

});

}

- (void)gotoFore

{

[self.stillCamera resumeCameraCapture];

[self.stillCamera startCameraCapture];

}

而如果是在加水印等生成的过程中崩溃的,就可以先停止,等重新进入的时候再处理

-(void)pauseRecord{
    if (self.startMakeVideo) {
        [movieWriter cancelRecording];
        [movieFile cancelProcessing];
    }
}

-(void)resumeRecord{
    if (self.startMakeVideo) {
        [self saveVedioPath:m_vedioPath WithFileName:m_fileName andCallBack:self.completionHandler];
    }
}

参考文章

Last modification:May 30th, 2017 at 09:26 am
如果看了这个文章可以让你少加会班,可以请我喝杯可乐
已打赏名单
微信公众号

Leave a Comment