我有一个主要UIViewController
的应用程序,以及在点击按钮后以模态方式显示的辅助应用程序。
两个UIViewControllers
都有自己的GPUImageStillCamera
,并添加了相应的GPUImageView
作为子视图。到目前为止,一切正常。
但是,当我转到模态显示的UIViewController
并关闭它时,我的主控制器上的摄像头在呈现第二个控制器之前保持冻结在我离开它的最后一帧上。
我在PrimaryViewController
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
[_stillCamera resumeCameraCapture];
}
-(void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
[_stillCamera pauseCameraCapture];
}
我在SecondaryViewController
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[_stillCamera resumeCameraCapture];
}
-(void)viewWillDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
[_stillCamera stopCameraCapture];
}
我100%确定方法触发(使用断点检查)。从逻辑上讲,第一台摄像机应该只是恢复预览,一旦再次观看,但它没有 - 它在最后一帧冻结(当调用pauseCameraCapture
方法时。是否有某种方法强制它刷新(除了重新创建它之外)?我已经检查过 - 它也没有被解除分配。
我错过了什么?
答案 0 :(得分:0)
我最终创建了一个Singleton类,它使GPUImageStillCamera
的单个实例保持活动状态。它还会保留所有过滤器,并在应用程序更改状态时处理暂停/恢复。
Singleton还可以返回GPUImageView
个实例来预览相机,并在您不再需要它时将其销毁。
它使用虚拟着色器(包含),因为在GPUImage