Ios5 AVF基金会视频

Ios5 AVF基金会视频,ios5,avfoundation,Ios5,Avfoundation,我正试图获得与AVFoundation合作的视频。目前,我只有一个代码,它应该从相机获取输入,并显示在屏幕上的UIImage上。然而,我只得到一个白色的屏幕 -(CIContext*)context{ if(!_context){ _context = [CIContext contextWithOptions:nil]; } return _context; } -(void)captureOutput:(AVCaptureOutput *)captu

我正试图获得与AVFoundation合作的视频。目前,我只有一个代码,它应该从相机获取输入,并显示在屏幕上的UIImage上。然而,我只得到一个白色的屏幕

-(CIContext*)context{
    if(!_context){
        _context = [CIContext contextWithOptions:nil];
    }
    return _context;
}

-(void)captureOutput:(AVCaptureOutput *)captureOutput didDropSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection{
    CVPixelBufferRef pb = CMSampleBufferGetImageBuffer(sampleBuffer);
    CIImage *ciImage = [CIImage imageWithCVPixelBuffer:pb];

    CGImageRef ref = [self.context createCGImage:ciImage fromRect:ciImage.extent];
    self.imageView.image = [UIImage imageWithCGImage:ref scale:1.0 orientation:UIImageOrientationRight];
CGImageRelease(ref);
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
     self.session = [[AVCaptureSession alloc] init];

     //the resolution of the capturing session
     self.session.sessionPreset = AVCaptureSessionPreset352x288;

     self.videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
     self.videoInput = [AVCaptureDeviceInput deviceInputWithDevice:
                   self.videoDevice error:nil];

     self.frameOutput = [[AVCaptureVideoDataOutput alloc] init];

     self.frameOutput.videoSettings = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_32BGRA] forKey:(id)kCVPixelBufferPixelFormatTypeKey];

     [self.session addInput:self.videoInput];
     [self.session addOutput:self.frameOutput];
     [self.frameOutput setSampleBufferDelegate:self queue:dispatch_get_main_queue()];

     [self.session startRunning];

 }

有人能帮忙吗?

您注册的委托方法是:

-(void)captureOutput:(AVCaptureOutput*)captureOutput didDropSampleBuffer:(CMSampleBufferRef)SampleBufferfromConnection:(AVCaptureConnection*)connection

您应该注册的委托方法是:

-(void)captureOutput:(AVCaptureOutput*)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)SampleBufferfromConnection:(AVCaptureConnection*)连接