【问题标题】:GPUImage simple code crash on executionGPUImage 简单代码在执行时崩溃
【发布时间】:2015-06-02 15:48:44
【问题描述】:

此代码在执行后大约 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'

【问题讨论】:

  • 首先使用崩溃的详细信息更新您的问题。并指出导致崩溃的确切行。
  • 一个很多可以在计算机上的“大约 1 秒”内发生。此外,代码不会在执行后 崩溃。它可能导致其他代码崩溃,但代码本身不能追溯崩溃。
  • 是的,对不起,我忘了我可以将设备插入 xcode 来获取这些。
  • 并且可以在模拟器上运行。如果它没有在模拟器上崩溃,那将是一件有用的事情。

标签: ios gpuimage


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    相关资源
    最近更新 更多