2014-10-04 90 views
0

将GPUImage框架添加到IOS项目中的时间正在变成几天。现在我已经开始工作了我正在尝试来自Sunset Lake Software页面的示例过滤实时视频代码。该应用程序构建失败,下面的红色错误:thresholdfFilter‘将GPUImage框架添加到IOS项目

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]; 

的iPad2上使用的Xcode 6.0.1和测试应用程序与IOS 8.0.2“未申报的用’ - 如果需要,我可以张贴屏幕投我如何看待这个框架。

+0

您是否尝试过使用CocoaPods? – AdamPro13 2014-10-04 17:48:16

+0

@亚当 - 太棒了!非常感谢你向我介绍CocoaPods。我现在已经开始运行GPUImage,没有任何问题。对于其他人来说,我发现了一个很棒的youTube教程 - http://www.youtube.com/watch?v=9_FbAlq2g9o。再次感谢。 – pete 2014-10-05 08:36:17

+0

完全没问题。我发现CocoaPods的那一天改变了我的生活。 – AdamPro13 2014-10-06 04:50:29

回答

0

首先,我在宣布框架的最初博客文章中编写的代码不应该被复制以用于现代版本的框架。该初稿是两年前撰写的,并未反映API的当前状态。事实上,我刚刚删除了原始文章中的所有代码,并指导人们遵守GitHub页面上的更新说明。感谢您的提醒。其次,你上面描述的问题是你试图使用一个名为thresholdFilter的变量,而没有定义这样的变量。这不是框架问题,编译器不知道你指的是什么。

第三,上面的代码不会工作的另一个原因:你不坚持你的相机实例。你在本地定义它,而不是将它分配给封装类的实例变量。这会导致ARC在您的上述设置方法完成后立即释放该摄像头,导致黑屏或崩溃。您需要创建一个实例变量或属性,并将相机分配给该相机,以便对其进行强有力的引用。