c++ - 在 C++ 中未检测到相机,但在 QML 中检测到

标签 c++ qt camera qml

我连接了 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

最佳答案

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

该错误已从 5.10.1 版本修复

关于c++ - 在 C++ 中未检测到相机,但在 QML 中检测到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45010450/

相关文章:

c++ - 如何在 qt 中禁用 QComboBox 的快捷方式?

c++ - 如何使 QChar.unicode() 报告组合字符的 utf-16 表示形式?

c++ - Qt 应用程序 : Simulating modal behaviour (enable/disable user input)

iphone - UIImagePickerController 不显示

matrix - Unity3D 相机矩阵的高级信息

javascript - IP 摄像头/光传感器 Node.js

c++ - NSArray 如何取得 C++ 对象的所有权

C++指针地址解释

c++ - 我可以使用 QBS 创建用户定义的运行配置文件吗?

c++ - 如何使用 Intel TBB 并行运行一个函数两次?