我正在使用AV基金会在Apple发布iOS 4.0后按照以下代码连续捕获图像, http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html
然而,当我打电话给“[session startRunning];”启动相机预览大约需要1-2秒。因此,这对最终用户来说是令人沮丧的,因为他需要等待一段时间。
有没有办法暂停会话而不是停止会话,因为我可以在程序启动时启动会话并保持暂停,直到用户导航到摄像机屏幕并开始在那里运行它?谢谢你的帮助。
答案 0 :(得分:28)
您可以禁用输入连接,而不是暂停会话。
e.g。
<your_video_preview_layer>.connection.enabled = NO;
这样它就不会消耗来自输入设备的数据。
希望这是你正在寻找的。 p>
答案 1 :(得分:1)
无法“暂停”会话,但您可以随时启动捕获会话并让其保持运行状态。如果要捕获静止图像,请在准备好时调用captureStillImageAsynchronouslyFromConnection。如果你正在捕捉视频,你可以让你的captureOutput:didOutputSampleBuffer:fromConnection:委托中的方法只是丢弃帧,直到你想对它们做一些事情。在您准备好之前,您甚至可以在没有输出设备的情况下启动捕获会话(没有尝试过)。
答案 2 :(得分:0)
我这样做是为了防止UI在调用-startRunning时锁定最初的1-2秒。
1) Add UIActivityIndicator
2) Add observer to AVCaptureSession
3) call -startRunning in a background thread
4) Resume the UI in the notification callback