【问题标题】:Basic GPUImage iOS7 app video freezes / not working基本 GPUImage iOS7 应用程序视频冻结/不工作
【发布时间】:2014-08-21 19:43:16
【问题描述】:

我是 GPUImage 的新手,我将 GPUImage 添加到默认单视图模板 Xcode 5.1.1 应用程序中。我成功地使用了静态 GPUImage 库,并且正在尝试自述文件中的示例。我有 iO S7.1 作为基础 SDK。该应用程序编译并加载,视频只是冻结。无论有没有过滤器,它都会冻结。 我该如何解决?我想显示应用了滤镜的实时相机预览

github repo 中包含的示例编译运行良好。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset352x288 cameraPosition:AVCaptureDevicePositionBack];
    videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;

    GPUImageFilter *customFilter = [[GPUImageSepiaFilter alloc]init];
    GPUImageView *filteredVideoView = [[GPUImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320, 320)];
    [self.view addSubview:filteredVideoView];
    // Add the view somewhere so it's visible


    [videoCamera addTarget:customFilter];
    [customFilter addTarget:filteredVideoView];

    [videoCamera startCameraCapture];
}

这是我运行 iOS 7.1 的 iPhone 5 的屏幕截图。

【问题讨论】:

    标签: ios objective-c xcode5 gpuimage


    【解决方案1】:

    冻结是因为您的 GPUImageVideoCamera 正在被释放。您将其创建为局部变量,而不是实例变量或属性,因此一旦您的 setup 方法完成,ARC 就会释放它。这将拆除图像处理管道的其余部分。

    您需要使您的 GPUImageVideoCamera 实例成为您的类的属性或实例变量,以便在您的设置方法之外对其进行强引用。相机需要在该方法之外持续存在,因此您需要确保它确实如此。相机将对其下游的任何事物保持强引用,因此您无需对过滤器执行相同操作,除非您想在某个时候调整它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-14
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多