【问题标题】:Camera not detected in C++ but is detected in QML在 C++ 中未检测到相机,但在 QML 中检测到
【发布时间】:2017-07-10 11:07:31
【问题描述】:

我连接了一个 USB 摄像头。

在 QML 中检测到摄像头,这有效:

Camera { id: camera}
VideoOutput { 
    anchors.fill: parent
    source: camera
}

但在c++中,相机不在列表中:

QList<QCameraInfo> cameras = QCameraInfo::availableCameras();
foreach (const QCameraInfo &cameraInfo, cameras){
    qDebug() << "*********** Cameras :" << cameraInfo.deviceName();
}

这没有任何输出。

QML 和 C++ 有什么区别?如何从 C++ 访问相机?

编辑:我创建了一个全新的项目来测试它,结果 c++ 检测到新项目上的相机。真正的项目正在加载一个插件,其中包含试图访问相机的类的实例,也许它会以某种方式导致问题。

EDIT2:与插件无关,经过测试,它不能与 QCoreApplication 一起使用,但它可以与 QGuiApplication 一起使用,这表明 QGuiApplication 可能在 CoreApp 不设置时设置了 mediaProvider

【问题讨论】:

  • 你在哪里调用 QCameraInfo::availableCameras()?也许它需要某种 Qt 初始化,然后 + 这是在哪个平台上运行的?
  • @Christian G :它在 Windows 上,根据文档,它不需要任何东西来初始化它
  • 你创建了某种QApplication
  • @velkan :是的,当然,我有一个 QCoreApplication 循环正在运行。没问题
  • this bug,不是吗?

标签: c++ qt camera qml


【解决方案1】:

这是一个错误:https://bugreports.qt.io/browse/QTBUG-59320

从 5.10.1 版本开始修复该错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 2022-06-13
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多