2010-09-02 94 views
5

我现在用的是AV基金会连续捕捉图像苹果发布的iOS 4.0后,按照给出的代码, http://developer.apple.com/iphone/library/qa/qa2010/qa1702.htmlAVCaptureSession暂停?

然而,当我打电话“[会议startRunning]。”大约需要1-2秒才能启动相机预览。所以,这对最终用户来说是令人沮丧的,因为他需要等待一段时间。

有没有办法暂停会话,而不是停止它,因为我可以在程序启动时初始化会话,并保持暂停,直到用户导航到相机屏幕并开始在那里运行它?谢谢你的帮助。

回答

1

没有办法“暂停”会话,但您可以随时启动捕获会话并保持运行状态。如果您正在捕捉静止图像,请在准备就绪时调用CaptureStillImageAsynchronouslyFromConnection。如果你在捕捉视频,你可以在代理中使用captureOutput:didOutputSampleBuffer:fromConnection:方法,直到你想对它们做些什么为止。您甚至可以在没有输出设备的情况下启动捕获会话,直到您准备好(尚未尝试过)。

24

而不是暂停您的会话,而是可以禁用输入连接。

例如

<your_video_preview_layer>.connection.enabled = NO; 

这样它就不会消耗来自输入设备的数据。

希望这是你在找什么。

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