Ios 在基本项目中使用GPUImage实时视频过滤器可获得纯白色屏幕

Ios 在基本项目中使用GPUImage实时视频过滤器可获得纯白色屏幕,ios,gpuimage,Ios,Gpuimage,我刚刚在一个全新的项目中集成了GPUImage,并根据页面中的说明添加了所需的库。我已经创建了GPUImageVideoCamera的strong属性,并且在viewDidLoad中,我将其实例化为: self.videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack]; 编辑:

我刚刚在一个全新的项目中集成了
GPUImage
,并根据页面中的说明添加了所需的库。我已经创建了
GPUImageVideoCamera
strong
属性,并且在
viewDidLoad
中,我将其实例化为:

self.videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
编辑:完成项目中的代码:

@interface ViewController () <GPUImageVideoCameraDelegate>
{
    GPUImageVideoCamera *videoCamera;
}

@end

@implementation ViewController

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

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;

    GPUImagePixellatePositionFilter *customFilter = [[GPUImagePixellatePositionFilter alloc] init];
    GPUImageView *filteredVideoView = [[GPUImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.frame.size.width, self.view.frame.size.height)];

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

    [videoCamera startCameraCapture];
}

@end
@界面视图控制器()
{
GPUImageVideoCamera*摄像机;
}
@结束
@实现视图控制器
-(无效)viewDidLoad
{
[超级视图下载];
//加载视图后,通常从nib执行任何其他设置。
摄像机=[[GPUImageVideoCamera alloc]initWithSessionPreset:AVCaptureSessionPreset640x480摄像机位置:AVCaptureDevicePositionBack];
}
-(无效)视图将显示:(BOOL)动画
{
[超级视图将显示:动画];
videoCamera.outputImageOrientation=ui接口方向纵向;
GPUImagePixellatePositionFilter*customFilter=[[GPUImagePixellatePositionFilter alloc]init];
GPUImageView*filteredVideoView=[[GPUImageView alloc]initWithFrame:CGRectMake(0.0,0.0,self.view.frame.size.width,self.view.frame.size.height)];
[摄像机添加目标:自定义过滤器];
[customFilter addTarget:filteredVideoView];
[摄像机StartCameraPture];
}
@结束

然而,我得到的只是一个没有任何错误或警告的白色屏幕,我想知道我做错了什么。。。谢谢

我知道这是个老问题,但我遇到了同样的问题并找到了解决办法。这看起来真的很愚蠢,但对我来说,我只是把摄像机变成了一种财产,它开始工作了,即:

@interface ViewController ()

@property (nonatomic, strong) GPUImageVideoCamera *camera;

@end

-(void)viewDidLoad {
    [super viewDidLoad];
    self.camera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];

    //etc.
}

这是在设备上运行的,不是模拟器?你确定视图是可见的吗?谢谢@BradLarson的回复-是的,这是在我的iPhone 5上运行的。如果有帮助,我可以发布整个项目。@BradLarson发布了在
ViewController.m