You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt6.6调用supportedFeatures返回0,Windows10相机功能检测异常求助

Qt相机supportedFeatures返回0的排查方案
  • 先完成相机初始化再调用接口
    直接创建QCamera对象后就调用supportedFeatures()会返回0,因为相机设备还没加载完成。必须先调用camera->load(),最好等待加载状态就绪后再查询:
camera->load();
// 等待1秒确保加载完成
if(camera->waitForLoaded(1000)){
    qDebug() << "Features: " << camera->supportedFeatures();
}
  • 检查Qt项目配置
    Windows下要确保项目正确引入多媒体模块:

    • .pro文件中添加:QT += multimedia multimediawidgets
    • 安装Qt时要勾选Qt Multimedia的Windows支持组件(Qt 6版本需注意)
  • 确认相机权限
    Windows 10需要手动授予应用相机访问权限:
    打开「设置」→「隐私和安全性」→「相机」,确保你的应用(包括调试用的Qt Creator/VS)被允许访问相机。

  • 监听相机状态再查询
    可以通过stateChanged信号,在相机进入Loaded或Active状态后再调用接口,避免时机不对:

connect(camera, &QCamera::stateChanged, this, [=](QCamera::State state){
    if(state == QCamera::LoadedState){
        qDebug() << "Features: " << camera->supportedFeatures();
    }
});
camera->load();
  • 确保相机对象实例有效
    先获取系统可用相机列表,再从中选取有效设备实例化QCamera,避免用无效设备创建对象:
QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
if(!cameras.isEmpty()){
    QCamera *camera = new QCamera(cameras.first());
    // 后续初始化操作
}

内容的提问来源于stack exchange,提问作者Hawke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 08:12:38