我在应用商店中有三个基于相机的应用(拍摄静态照片),并且收到反馈说 UIImagePickerController 界面非常慢 - 我不能否认这一点。因此,为了提高应用程序的性能,我开始尝试使用 WWDC 2010 中的 AVCam Demo 源代码。
由于 AVFoundation 框架不与 UI Kit 交互,因此我成功地围绕演示包装了一个视图。我能够成功地在视图控制器之间转换。我唯一修改的是将 Record 按钮替换为 Exit 按钮(退出到包装视图控制器)
修改后的应用程序在第一个会话期间运行良好(包装器 -> 演示)如果我将演示退出到包装器,然后第二次返回演示,预览层中的视频帧会在一两秒后冻结。应用程序本身不会冻结 - 只是视频被冻结。此时,所有 UI 按钮都处于活动状态。但是,当我点击“静止”按钮捕捉图像时,我在警报中收到以下错误:
操作无法完成(AVFoundationErrorDomain 错误 - 11800。)
这不能在原始演示代码中复制 - 因为您无法关闭并重新打开会话。所以,我想知道这是否与我在测试中“退出”会话的方式有关。这是我在演示代码中添加的“退出”操作:
- (IBAction)exit:(id)sender
{
[[self captureManager] stopRecording];
[self dismissModalViewControllerAnimated:YES];
}
这是否足够 - 或者我错过了什么?
问候,山姆。