AVCaptureSession在更改预设后捕获黑色/暗框架。

5
我正在开发一个应用程序,支持使用AVFoundation捕获静态图像和视频。捕获它们需要不同的AVCaptureSession预设。我通过检查canSetSessionPreset(),开始使用beginConfiguration()更改,使用sessionPreset设置所需预设,并使用commitConfiguration()结束。
如果我在更改预设后立即使用AVCaptureStillImageOutput捕获静态图像,它返回没有错误,但有时结果图像是黑色或非常暗淡的。
如果我在更改预设后立即使用AVCaptureMovieFileOutput捕获视频,结果文件中的前几帧也有时是黑色或非常暗淡的。
在更改预设后立即进行捕获后,屏幕会闪烁,可能是由于相机调整曝光造成的。因此,看起来在更改预设后,相机从非常快的快门速度开始测量曝光,这导致黑色/暗淡的帧。
如果在更改预设和开始捕获之间插入0.1秒延迟,两个问题都会消失,但这很丑陋,并且无法保证在所有设备上始终有效。
有没有解决这个问题的干净方法?

你解决了吗? - Jagdev Sendhav
@UserDev 我没有找到比0.1秒延迟更好的解决方案。 - Alexander Vasenin
Instagram的主相机也存在同样的问题(如果我们立即切换到照片模式并拍摄照片),但在故事相机上(也适用于Facebook),拍摄图像和视频都非常流畅。他们是如何在故事相机上保持这种效果的?有任何想法吗? - Jagdev Sendhav
1个回答

1
这是给未来用户的提示...
当我将sessionPreset设置为high时,出现了这种情况,一旦我开始录制,我就会更改视频输出连接并设置焦点,而我在设置相机时进行了移动,这样就可以解决问题!

请问您能否展示一下您尝试过的代码/示例? - Jamshed Alam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接