【问题标题】:Wrapping AVCam demo from WWDC 2010包装来自 WWDC 2010 的 AVCam 演示
【发布时间】:2011-05-07 17:49:16
【问题描述】:

我在应用商店中有三个基于相机的应用(拍摄静态照片),并且收到反馈说 UIImagePickerController 界面非常慢 - 我不能否认这一点。因此,为了提高应用程序的性能,我开始尝试使用来自 WWDC 2010 的 AVCam Demo 源代码。

由于 AVFoundation 框架不与 UI Kit 交互,我已经成功地围绕演示包装了一个视图。我能够成功地在视图控制器之间转换。我唯一修改的是将 Record 按钮替换为 Exit 按钮(退出到包装视图控制器)

修改后的应用程序在第一次会话期间运行良好(包装器 -> 演示)如果我将演示退出到包装器,然后第二次返回演示,预览层中的视频帧会在一两秒后冻结。应用程序本身不会冻结 - 只是视频被冻结。此时,所有 UI 按钮都处于活动状态。但是,当我点击“静止”按钮捕获图像时,我在警报中收到以下错误:

操作无法完成(AVFoundationErrorDomain 错误 - 11800。)

这不能在原始演示代码中复制 - 因为您无法关闭并重新打开会话。所以,我想知道这是否与我在测试中“退出”会话的方式有关。这是我在演示代码中添加的“退出”操作:

- (IBAction)exit:(id)sender
{
    [[self captureManager] stopRecording];
    [self dismissModalViewControllerAnimated:YES];
}

这就足够了 - 还是我错过了什么?

问候,山姆。

【问题讨论】:

    标签: uiimagepickercontroller avfoundation avcam


    【解决方案1】:

    以有序的方式清理捕获会话存在一个小问题,因为有一些异步调用没有提醒它们何时完成。

    尝试按照此问题中的建议停止和释放: How to properly release an AVCaptureSession (采取最高票数的解决方案)

    如果这没有帮助,您可能需要在此处发布更多代码。你确定这就是你改变的全部吗?

    祝你好运!

    奥德。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-07
      • 1970-01-01
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      相关资源
      最近更新 更多