2016-12-27 6 views
1

AVCaptureSessionを15秒間実行してから停止する必要があります。これをどうやってやることができますか?私は入力の摂取を停止することはかなり確信しているので、を待つことを躊躇するまたは睡眠私は停止コマンドを実行する前に15秒待つのに何が使えますか?AVCaptureSessionの実行に十分な時間を確保するにはどうすればよいですか?

サンプルコード:

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

答えて

1

スリープが実際に急停止にすべてをもたらすだろう。それをしないでください。別の方法としては、15秒が呼び出しごとに経過しているかどうかを確認するためにCADisplayLinkとテストを設定することですが、あなたは必要がない限り、上記問題ないはず

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

あなたはdispatch_afterへの呼び出しを使用することができますミリ秒の精度。

+0

私はこれを試しましたが、デバッグ中にコンパイラはすぐにstopRunning行に行きます。 – fi12

+0

なぜそれはそうだと思いますか? –

+0

私は知らない、あなたのアイデアはありますか? – fi12

関連する問題