2016-12-27 43 views
1

我需要確保我的AVCaptureSession在停止前運行15秒。我怎麼能這樣做呢?我很猶豫使用等待睡眠因爲我確信它會停止輸入的輸入。在我運行停止命令之前,我可以使用什麼等待15秒?如何確保我的AVCaptureSession有足夠的時間運行?

示例代碼:

[self.session startRunning]; 
// wait 15 seconds 
[self.session stopRunning]; 

回答

1

睡眠的確會帶來一切戛然而止。不要這樣做。

你可以使用一個電話dispatch_after:

[self.session startRunning]; 
// wait 15 seconds 
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 
    15 * NSEC_PER_SEC), 
    dispatch_get_main_queue(), ^{ 
    [self.session stopRunning]; 
}); 

另一種方法是建立一個CADisplayLink和測試,以查看是否15秒已在每次調用已過,但上面的應該是罰款,除非你需要毫秒精度。

+0

我試過這個,但是在調試的時候,編譯器仍然會立即進入stopRunning行。 – fi12

+0

你爲什麼認爲這樣做? –

+0

我不知道,你有什麼想法嗎? – fi12

相關問題