2010-09-02 84 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