尝试将GPUImage框架添加到IOS项目中的时间已经变成了几天。现在我已经让它工作了,我正在尝试来自日落湖软件页面的示例过滤实时视频代码。应用程序无法构建,并显示以下红色错误:“使用未声明的'thresholdfFilter‘”
GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
GPUImageFilter *customFilter = [[GPUImageFilter alloc] initWithFragmentShaderFromFile:@"CustomShader"];
GPUImageView *filteredVideoView = [[GPUImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 768, 1024)];
// problem here
[videoCamera addTarget:thresholdFilter];
[customFilter addTarget:filteredVideoView];
[videoCamera startCameraCapture];
使用Xcode6.0.1并在iPad2和iOS8.0.2上测试应用程序-如果需要,我可以发布我如何编辑框架的屏幕截图。
发布于 2014-10-06 23:25:47
首先,在我最初的博客文章中宣布框架的代码不应该被复制来与框架的现代版本一起使用。最初的那篇文章是两年前写的,并没有反映API的当前状态。事实上,我刚刚删除了原始帖子中的所有代码,并将人们引导到GitHub页面上的说明,这些说明保持最新。谢谢你的提醒。
其次,您上面描述的问题是,您试图使用一个名为thresholdFilter
的变量,但从未定义过这样的变量。这不是框架的问题,编译器不知道你指的是什么。
第三,上面的代码不能工作还有另一个原因:你没有抓住你的相机实例。您将在本地定义它,而不是将其赋给封装类的实例变量。这将导致ARC取消分配相机,一旦您的上述设置方法完成,导致黑屏或崩溃。您需要创建一个实例变量或属性,并将摄影机分配给它,以便对其进行强引用。
https://stackoverflow.com/questions/26195431
复制相似问题