ios - GPUImage 简单代码在执行时崩溃

标签 ios gpuimage

此代码在执行后约 1 秒崩溃(iOS7):

-(void)initializeCamera
{
    GPUImageStillCamera *stillCamera=[[GPUImageStillCamera alloc]initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
    stillCamera.outputImageOrientation=UIInterfaceOrientationPortrait;
    GPUImageView *image=[[GPUImageView alloc]initWithFrame:CGRectMake(0.0, 0.0, self.view.frame.size.width, self.view.frame.size.height)];
    GPUImageGrayscaleFilter *filter=[[GPUImageGrayscaleFilter alloc]init];

    [self.view addSubview:image];
    [stillCamera addTarget:filter];
    [filter addTarget:image];
    [stillCamera startCameraCapture];
}

如果在崩溃之前有任何帮助,则会显示相机拍摄的照片。

GPUImage 与 CocoaPod 一起安装:

platform :ios, '7.0'
pod 'GPUImage'

最佳答案

那是因为您没有保留 GPUImageStillCamera。您在 -initializeCamera 方法中将其创建为本地实例,而不是保留它,因此它将在 -initializeCamera 完成时立即被释放,从而导致崩溃或其他未定义的行为。

您需要将其作为 -initializeCamera 所在的类的属性或实例变量,或其他一些外部强引用。

关于ios - GPUImage 简单代码在执行时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30600746/

相关文章:

ios - 带有自定义转换的 UIViewController;模态呈现后丢失

ios - 使用 UserDefaults 快速存储数组

IOS MDM 推送通知问题

iphone - CLLocationmanager : Save battery

ios - 有没有办法找到GPUImageFilter对应的CIFilter?

ios - GPUImage锁定 View

ios - 更改导航栏中标题 View 的大小

ios - GPU Image2 音频问题

ios - GPUImage2 , 前后摄像头切换

ios - GPUImageGaussianBlurFilter 似乎不适用于分层过滤器