GPUImageVideoCamera在ios 7上保存视频

时间:2014-02-26 12:51:16

标签: gpuimage

我正在尝试实现像300 * 300这样的方形视频录制,所以我选择了GPUImage,但它不能在IOS 7上运行并且出现[UIView nextAvailableTextureIndex]: unrecognized selector sent to instance之类的错误,当我们构建偶数示例代码时,错误就开始了 在尝试保存GPUImageVideoCamera时 有时卡在[movieWriter startRecording]; 与ios 7兼容的GPUImage还是我们做了一些改动?

这是代码

     - (void)viewDidLoad
        {
            [super viewDidLoad];

            videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];


            videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;
            videoCamera.horizontallyMirrorFrontFacingCamera = NO;
            videoCamera.horizontallyMirrorRearFacingCamera = NO;

            filter = [[GPUImageSepiaFilter alloc] init];

        initWithRotation:kGPUImageRotateRightFlipVertical];

            [videoCamera addTarget:filter];
            GPUImageView *filterView = (GPUImageView *)self.view;
            [filter addTarget:filterView];
       sharing

            NSString *pathToMovie = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Movie.m4v"];
            unlink([pathToMovie UTF8String]); // If a file already exists, AVAssetWriter won't let you record new frames, so delete the old movie
            NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie];
            movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(480.0, 640.0)];

            [filter addTarget:movieWriter];

        }



- (IBAction)stopRecording:(id)sender {

    [filter removeTarget:movieWriter];
    videoCamera.audioEncodingTarget = nil;
    [movieWriter finishRecording];

}

- (IBAction)startRecording:(id)sender {

    videoCamera.audioEncodingTarget = movieWriter;
    [movieWriter startRecording];
    [videoCamera startCameraCapture];

}

1 个答案:

答案 0 :(得分:2)

我的猜测是您修改了.xib或故事板,并没有将显示相机预览的视图类设置为GPUImageView

see image