iPhone上的视频捕获;captureOutput委托从未调用

iPhone上的视频捕获;captureOutput委托从未调用,iphone,objective-c,video-capture,Iphone,Objective C,Video Capture,嘿,伙计们。试着开始iPhone视频捕获的东西,但却经历了一段糟糕的时间 目前,使用这个苹果开发人员提供的示例代码的精确副本问&答:;不打算在这里重新粘贴,因为这是一个相对较大的代码块 在任何情况下,我都将代码复制并粘贴到一个空项目中,在自定义UIView中调用setupCaptureSession,并认为我应该可以继续: - (void)awakeFromNib { NSLog(@"init"); [self setupCaptureSession]; } 不幸的是,当我运

嘿,伙计们。试着开始iPhone视频捕获的东西,但却经历了一段糟糕的时间

目前,使用这个苹果开发人员提供的示例代码的精确副本问&答:;不打算在这里重新粘贴,因为这是一个相对较大的代码块

在任何情况下,我都将代码复制并粘贴到一个空项目中,在自定义UIView中调用setupCaptureSession,并认为我应该可以继续:

- (void)awakeFromNib {
    NSLog(@"init");
    [self setupCaptureSession]; 
}
不幸的是,当我运行代码时,我的委托似乎从未被调用:

- (void)captureOutput:(AVCaptureOutput *)captureOutput 
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer 
       fromConnection:(AVCaptureConnection *)connection
{ 
    NSLog(@"New Image!");
}
我本以为会看到大量的“新形象”被扔进日志,但我什么也没有得到。我知道所有的初始化代码都在运行(我在setupCaptureSession中到处抛出了一些NSLog语句,它们都打印出来)

因此,我要么A)想找出我做错了什么,要么B)看到一些嵌入到UIView中的非常简单的捕获代码,这些代码实际上可以工作(代码越少越好)。理想情况下,示例代码将使用上面Apple开发者站点中描述的setupCaptureSession代码

请注意,此代码正在运行最新版本iOS 4的iPhone 3GS上进行测试


提前谢谢

我将相同的代码复制并粘贴到一个新项目中,对我来说效果很好。 以下是我所做的:

我在XCode中创建了一个基于视图的应用程序

我添加了以下框架:CoreMedia、CoreVideo、AVFoundation

我将AVFoundation导入了viewcontroller的头文件

我指定视图控制器在其接口定义中使用AVCaptureVideoDataOutputSampleBufferDelegate协议

在实现中,我复制了您在问题中指定的应用程序文档中的代码

我评论道:

 [self setSession:session]
我评论道:

UIImage *image = [self imageFromSampleBuffer:sampleBuffer];
并补充说:

NSLog(@"here");
在viewDidLoad方法中,我将

 [self setupCaptureSession];
建造。跑
“此处”会反复打印到控制台。

谢谢您的帮助;方向明确,效果良好。我仍然想知道为什么UIView方法不起作用,但我想我会选择目前有效的方法。嗨。UIView方法确实有效。事实上,通过将UIImageView的image属性设置为委托函数中返回的UIImage,您可以非常轻松地创建摄影机预览器。事实上,如果您按照上面的说明操作,但不注释UIImage内容并将UIImage添加到视图控制器中,那么您将被设置为继续,因为UIImageViews图像属性具有retain,您不必担心释放图像。如果您需要代码,请告诉我我不认为您有完整的xcode项目可以下载?不幸的是没有。但是我不认为用UIView来完成上面的过程会太难