试图将GPUImage框架添加到IOS项目中的时间变成了几天。现在我已经开始工作了我正在尝试从Sunset Lake Software页面过滤实时视频代码。该应用无法使用以下红色错误构建:'使用未声明的' 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];
使用Xcode 6.0.1并在iPad2上使用IOS 8.0.2测试应用程序 - 如果需要,我可以发布我如何使用框架的屏幕截图。
答案 0 :(得分:0)
首先,我在宣传框架的初始博客文章中编写的代码不应该被复制以用于框架的现代版本。最初的帖子是两年前写的,并没有反映API的当前状态。事实上,我刚刚删除了原始帖子中的所有代码,并指示人们访问GitHub页面上的说明,这些说明是最新的。谢谢你的提醒。
其次,您上面描述的问题是您尝试使用名为thresholdFilter
的变量而不定义此类变量。这不是框架的问题,编译器不知道你指的是什么。
第三,上述代码因其他原因而无法工作:您没有坚持使用相机实例。您在本地定义它,而不是将其分配给封装类的实例变量。这将导致ARC在您的上述设置方法完成后立即取消分配相机,从而导致黑屏或崩溃。您需要创建一个实例变量或属性并将摄像机分配给它,以便对其进行强引用。