2012-07-27 58 views
8

我使用AVFoundation通過AVCaptureVideoPreviewOverlay在我的UIView中顯示視頻。 然後,我使用AVStillImageOutput- captureStillImageAsynchronouslyFromConnection :AVCaptureSessionPresetPhoto預設中捕捉視頻中的靜止圖像。如何在拍攝照片的那一刻暫停視頻?

我凍結視頻使用AVCaptureSession-停止運行在- captureStillImageAsynchronouslyFromConnection完成塊前面提到。但是,已經太遲了,在拍攝靜止圖像時視頻仍在繼續運行,因此凍結時間稍晚一兩秒鐘。當我顯示圖像時會跳轉。

如何在準確拍攝照片時凍結視頻?

+0

您是否將「-stopRunning」作爲完成塊中的第一個動作執行?該塊中的其他操作可能需要大量時間,因此您需要將其作爲首先發生的事情。 – 2012-07-27 15:03:22

+0

stopRunning是第一個動作 – user1130254 2012-07-27 16:50:11

+0

您是在主線程還是後臺線程捕獲視頻幀? – 2012-07-27 16:51:08

回答

1

差不多一年之後......你的方法都是錯誤的。爲什麼不暫停視頻然後捕獲暫停的圖像,而不是試圖在拍攝圖像的準確時刻暫停視頻。對於用戶來說,這並沒有什麼區別,對於開發人員而言,您不必擔心確切的精確度。

重申我的想法,如果您暫停視頻並閃動白色視覺並播放一次點擊,用戶會認爲您剛剛捕獲了該幀,無論您是否願意。實際上,您可以考慮暫停視頻,而不是保存圖像。