我實現了使用的iOS 4 & 5提供的AVFoundation框架攝像頭,但一直在經歷與captureStillImageAsynchronouslyFromConnection:completionHandler:
功能,其中完成處理程序塊是從來沒有所謂不一致的問題。在這種情況下快門聲音不會啓動並且預覽會凍結。的iOS AVFoundation captureStillImageAsynchronouslyFromConnection:completionHandler:無限期地掛起
我已經遵循蘋果(WWDC 2010 & 2011視頻)和非Apple指南(博客和SO帖子)來實現照片分辨率下的靜態圖像捕獲,但幾乎沒有任何改進。我已經能夠在一定程度上一致地重現了下列條件下:
- 如果我設置閃到
AVCaptureFlashModeAuto
,並採取在低光照片,它掛起,從不完成塊。閃光燈閃光,但快門聲音不響。使用相同的代碼,我可以在快門聲閃爍的正常光線下拍攝照片,閃光燈不閃光,並且完成模塊運行。 - 如果我沒有設置
flashMode
或將其設置爲關閉,我可以拍攝一些照片,但在少量數字後(通常在1到5之間),完成塊會停止發射。對於澄清,方案可能是:- 採取在確認屏幕中的照片,並查看
- 回到拍照畫面
- 重複1次& 2幾次
- 命中拍照,並將它掛在完成塊之前。
我實現
我有一個視圖控制器處理的接口和獨立的類來處理所有的AVFoundation東西。處理AVFoundation內容的獨立類的實例變量位於ViewController中。它與示例實現不同,但我不明白爲什麼它會導致這種偶然的錯誤。
更多的觀測
- 即使檢查
[stillImageOutput isCapturingStillImage]
時,它將繼續返回false繼續。如果我切換到另一個應用程序運行captureStillImageAsynchronouslyFromConnection
功能 - ,鎖定手機,採取某些其他訴訟在應用程序中,或點擊「拍照」按鈕一百萬次,我就可以獲得完成塊以返回錯誤。他們根據哪個行動而不同。常見的是11800,11801和11830.它們似乎與掛起無關。
- 我已經讓我們的測試手機(iPhone 4 GSM)坐了一個小時,看它是否會最終處理。沒有骰子。
我很想知道,如果有什麼東西,我可能會錯過,屬性未設置,或與周圍的工作一個已知的問題。
謝謝。
(我看到一個類似的帖子,但沒有答案解決了我的問題,我需要在應用程序中使用Photo res。供參考: iPhone SDK 4 AVFoundation - How to use captureStillImageAsynchronouslyFromConnection correctly?)