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