Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何确保AVCaptureSession有足够的时间运行?_Ios_Objective C_Avcapturesession_Avcapture - Fatal编程技术网

Ios 如何确保AVCaptureSession有足够的时间运行?

Ios 如何确保AVCaptureSession有足够的时间运行?,ios,objective-c,avcapturesession,avcapture,Ios,Objective C,Avcapturesession,Avcapture,我需要确保我的AVCaptureSession在停止之前运行15秒。我怎么能这样做呢?我对使用“等待”或“睡眠”犹豫不决,因为我相当肯定它会停止输入的摄入。在运行stop命令之前,我可以使用什么等待15秒 示例代码: [self.session startRunning]; // wait 15 seconds [self.session stopRunning]; 睡眠确实会使一切都停止。不要那样做 您可以在以下情况下使用呼叫发送\u: [self.session startRunnin

我需要确保我的AVCaptureSession在停止之前运行15秒。我怎么能这样做呢?我对使用“等待”或“睡眠”犹豫不决,因为我相当肯定它会停止输入的摄入。在运行stop命令之前,我可以使用什么等待15秒

示例代码:

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

睡眠确实会使一切都停止。不要那样做

您可以在以下情况下使用呼叫发送\u:

[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秒,但除非您需要毫秒精度,否则上述方法应该可以。

我尝试了此方法,但在调试时,编译器仍会立即转到停止运行行。您认为它为什么会这样做?我不知道,你有什么想法吗?没关系,我已经想好了。我刚刚重新实现了你的代码,它按预期工作。谢谢你的帮助!