0

我正在编写一个应用程序,我在其中使用 AVCaptureSession 和 AVCaptureVideoDataOutput 来获取样本缓冲区,进行一些点检测并实时显示它。

用户还具有捕获图像的能力。

问题是,因为我使用的是同一个会话,所以捕获静止图像的图像质量与视频的图像质量相同。

我正在使用 captureOutput:didOutputSampleBuffer:fromConnection: 委托方法来捕获帧和 captureStillImageAsynchronouslyFromConnection: 来捕获静止图像

我想知道是否有办法在 AVCaptureSessionPresetMedium 中捕获帧,并在捕获图像时切换到 AVCaptureSessionPresetPhoto?

4

1 回答 1

0

您可以在会话运行时更改会话的sessionPreset属性。

将其更改为AVCaptureSessionPresetPhoto在捕获图像之前,然后返回到AVCaptureSessionPresetMedium完成块中captureStillImageAsynchronouslyFromConnection:completionHandler:

请注意,更改预设会使相机在切换时短暂空白,因此可能难以立即捕捉特定帧的照片,但实际上并没有任何保证,因为AVCaptureStillImageOutputcaptureStillImageAsynchronouslyFromConnection:它完成时就完成了。:)

于 2012-12-01T21:30:36.320 回答