【发布时间】: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,不是吗?