我已经使用iOS 4和5中提供的AVFoundation框架实现了一个摄像头,但是在captureStillImageAsynchronouslyFromConnection:completionHandler:从未调用完成处理程序块的函数中遇到了一个不一致的问题.在这种情况下,快门声音不会启动并且预览会冻结.
我跟随Apple(WWDC 2010和2011视频)和非Apple指南(博客和SO帖子)在Photo分辨率下实现静态图像捕获,几乎没有改进.在以下条件下,我能够一致地重现:
AVCaptureFlashModeAuto并在低光照条件下拍摄,它会挂起并且永远不会运行完成块.闪光灯闪光,但快门声没有.使用相同的代码,我可以在正常光线下拍摄照片,快门声音会闪光,闪光灯不闪光,完成程序段运行.flashMode或关闭它,我可以拍摄一些照片,但是在一小部分(通常在1到5之间)之后,完成程序段会停止发射.为了澄清,一个场景可能是:
我的实施
我在ViewController中处理接口,并在单独的类中处理所有AVFoundation的东西.处理AVFoundation内容的单独类的实例变量位于ViewController中.它与示例实现不同,但我不明白为什么它会导致这种偶然的错误.
更多观察
[stillImageOutput isCapturingStillImage],它仍将继续返回false并继续运行该captureStillImageAsynchronouslyFromConnection功能我很想知道是否有一些我可能会遗漏的东西,一个未设置的属性,或一个已解决的问题.
谢谢.
(我看到了类似的帖子,但没有一个答案解决了我的问题.我需要在应用程序中使用Photo res.供参考: iPhone SDK 4 AVFoundation - 如何正确使用captureStillImageAsynchronouslyFromConnection?)