GPUImage遇到的坑

来源:互联网 发布:淘宝直播怎么开通不了 编辑:程序博客网 时间:2024/05/22 10:37
对于把GPUImage导入工程中,被坑了有点久,百度很多方法基本上是按照点击打开链接github上GPUImage上导入介绍里的方式,那个有点复杂的样子,我好几次都出了问题,后来实在想不到啥方法就使用cocaPods来导入,然后设置相机也有用,瞬间感觉呗坑了 。。。。。

1 新建一个singleview工程,导入GPUImage库

2 添加属性

    GPUImageVideoCamera *videoCamera;
    GPUImageOutput *filter;

3 viewDidload里面添加代码:

    videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
    videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;
    videoCamera.horizontallyMirrorFrontFacingCamera = NO;
    videoCamera.horizontallyMirrorRearFacingCamera = NO;
 
    filter = [[GPUImageColorInvertFilter alloc] init];
 
    [videoCamera addTarget:filter];
    GPUImageView *filterView = (GPUImageView *)self.view;

-[UIView nextAvailableTextureIndex]: unrecognized selector sent to instance
 
    [filter addTarget:filterView];
    [videoCamera startCameraCapture];


4 注意,这里要非常地注意!!

-[UIView nextAvailableTextureIndex]: unrecognized selector sent to instance 0x16658d00

在storyboard里面把viewControl的view的类改为GPUImageView!!不然会报错,这也是烦扰了我半天的问题!google到了stackOverFlow才找到的答案。。
如果还报错,看看target-build setting里面,other linker flags 里面是否添加了   -fobjc-arc   -ObjC 这两项

5.如果程序运行时在[[[GPUImageContext sharedImageProcessingContext] context] renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer*)self.layer]; 出现EXC_BAD_ACCESS。 
需要修改Product->Scheme->Edit Scheme->Options->GPU Frame Capture 选择 Disabled。
(看到这就头疼,花了好久的时间去研究这个,谁知道随便找找其他资料就看到解决办法了,真有点想哭)
0 0
原创粉丝点击