根据网上能查到的信息,QCamera查询和设置摄像头分辨率操作需要在摄像头启动之后,即
m_camera->start();
QCameraViewfinderSettings viewfinderSetting = m_camera->viewfinderSettings();
viewfinderSetting.setResolution(QSize(640,480));//当然这里的size应该是相机支持的
但是我在调试自己程序的时候却发现有的情况下这样设置会导致相机没有图像任何输入,进一步调试camera状态发现是setResolution后相机停掉了(具体原因不明)

于是进一步查阅qt文档有了新的发现,QCamera除了start还有load操作,load一般无需手动调用,除非是需要更改摄像头默认设置

于是这便柳暗花明了,按照官方文档,查询和更改相机设置应该是在load之后,并非必须start,所以将代码修改如下
m_camera->load();
QCameraViewfinderSettings viewfinderSetting = m_camera->viewfinderSettings();
viewfinderSetting.setResolution(QSize(640,480));//当然这里的size应该是相机支持的
m_camera->start();
问题就能解决。
QCamera设置分辨率无图像输入问题解决

本文探讨了在使用QCamera进行分辨率设置时遇到的无图像输入问题。通常,设置分辨率应在启动相机之后进行,但作者发现在某些情况下,这会导致相机停止工作。通过深入研究QT文档,发现可以先调用load方法更改相机默认设置,而不是立即start。按照此方法调整代码后,问题得到解决。
最低0.47元/天 解锁文章
9979

被折叠的 条评论
为什么被折叠?



