我正在开发使用 AVFoundation
支持静态图像和视频捕获的应用程序。捕获它们需要不同的 AVCaptureSession
预设。我检查 canSetSessionPreset()
,以 beginConfiguration()
开始更改,使用 sessionPreset
设置所需的预设并以 commitConfiguration()
结束。
我发现如果我在更改预设后立即使用 AVCaptureStillImageOutput
捕获静止图像 ,它不会返回任何错误,但生成的图像有时是黑色或非常暗。
如果我在更改预设后立即开始使用 AVCaptureMovieFileOutput
捕获视频 ,则结果文件中的前几个帧有时也是黑色或非常暗。
更改预设后,屏幕闪烁可能是由于相机调整曝光造成的。所以看起来在改变预设相机后立即开始以非常快的快门速度测量曝光,这会导致黑/暗帧。
如果我在更改预设和开始捕获之间插入 0.1 秒的延迟,这两个问题都会消失,但这很丑陋,没有人能保证它会一直在所有设备上工作。
这个问题有干净的解决方案吗?
最佳答案
这是为 future 的用户...
当我将 sessionPreset
设置为 high
时,它发生在我身上,一旦我开始录制,我就对视频输出连接进行更改并设置焦点,然后我在设置相机时移动到该焦点并且它起作用了!!!
关于ios - AVCaptureSession 在更改预设后捕获黑/暗帧,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39229477/