2017-05-09 125 views
1

有没有什么办法可以提高captureStillImageAsynchronouslyFromConnection的速度?提高捕捉速度StillSiellImageAsynchronouslyFromConnection

我试着只关注输出帧,如下所示:captureOutput:didOutputSampleBuffer:fromConnection:,但这并不能真正解决问题。此外,我无法像上述captureAsync方法那样从该授权方法获得相同的解决方案。

所以我的问题是,有没有什么办法可以提高captureAsync的返回速度?现在我在iPhone 7上平均每个约0.5秒。

也许禁用HDR等?如果有人有任何意见,我会永远感激。

回答

1

正如你可能已经知道,captureStillImageAsynchronouslyFromConnection:completionHandler: 从iOS的10

不赞成每苹果文档

的AVCaptureStillImageOutput类在iOS的10.0弃用,并 不支持较新的相机拍摄功能,作为RAW图像输出, 实况照片,或广色域的颜色。在iOS 10.0和更高版本中,请改用 AVCapturePhotoOutput类。 (该AVCaptureStillImageOutput 类仍然在MacOS上10.12的支持。)

既然你是针对iPhone 7我建议使用AVCapturePhotoOutput及其委托AVCapturePhotoCaptureDelegate

欲了解更多信息chceck了我以前的SO answer

为了提高速度,AFAIK的唯一方法是使用captureOutput:didOutputSampleBuffer:fromConnection:

  • 它给你t他由Capture Device处理的帧。
  • 为确保您获得高质量的图片,您需要添加正确的AVCapturePhotoSettings并获得高质量的图像数据。

从我的测试结果处理速度这种方法可以处理每秒然后20帧为iPhone 6和每秒超过50帧上iPhone 7,7加上(注意它可能是不准确的结果作为我的照片设置和图像处理可能与您的不同)

+0

'captureOutput:didOutputSampleBuffer:fromConnection:'似乎是唯一的选择。谢谢@Bluewings – COOKIES