如何确保我的 AVCaptureSession 有足够的时间 运行?
How can I ensure that my AVCaptureSession has enough time to run?
我需要确保我的 AVCaptureSession 运行s 在停止之前持续 15 秒。我该怎么做呢?我对使用 wait 或 sleep 犹豫不决,因为我很确定它会停止输入。在我 运行 停止命令之前,我可以用什么来等待 15 秒?
示例代码:
[self.session startRunning];
// wait 15 seconds
[self.session stopRunning];
睡眠确实会让一切戛然而止。不要那样做。
您可以调用 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 秒,但除非您需要毫秒精度,否则上述方法应该没问题。
我需要确保我的 AVCaptureSession 运行s 在停止之前持续 15 秒。我该怎么做呢?我对使用 wait 或 sleep 犹豫不决,因为我很确定它会停止输入。在我 运行 停止命令之前,我可以用什么来等待 15 秒?
示例代码:
[self.session startRunning];
// wait 15 seconds
[self.session stopRunning];
睡眠确实会让一切戛然而止。不要那样做。
您可以调用 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 秒,但除非您需要毫秒精度,否则上述方法应该没问题。