AVCaptureSession 在更改预设后捕获黑色/暗帧

Ale*_*nin 5 avfoundation ios avcapturesession

我正在开发支持静态图像视频捕获的应用程序AVFoundation。捕获它们需要不同的AVCaptureSession预设。我检查canSetSessionPreset()、开始更改beginConfiguration()、设置所需预设sessionPreset并结束commitConfiguration()

我发现如果我在更改预设后AVCaptureStillImageOutput 立即捕获静态图像,它不会返回任何错误,但生成的图像有时是黑色或非常暗。

AVCaptureMovieFileOutput 如果我在更改预设后立即开始捕获视频,则生成的文件中的前几帧有时也是黑色或非常暗。

更改预设后,屏幕闪烁可能是由于相机调整曝光所致。因此,看起来在更改预设相机后立即开始以非常快的快门速度测量曝光,这会导致黑色/暗帧。

如果我在更改预设和开始捕捉之间插入 0.1 秒的延迟,这两个问题就会消失,但这很丑陋,而且没有人可以保证它在所有设备上都能正常工作。

这个问题有干净的解决方案吗?

小智 2

这是为未来的用户...

当我设置as时,这发生在我身上,sessionPresethigh我开始录制时,我正在更改视频输出连接并设置焦点,然后我在设置相机时移动到焦点,它起作用了!