我正在尝试在 Ubuntu、Qt 5.6 上执行 QCamera 示例。观察到“相机服务丢失”消息。
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera"
检查是否安装了所有依赖项。他们是:
qtmultimedia5-dev
_
libqt5multimedia5-插件
前任:
sudo apt-get install libqt5multimedia5-plugins
检查示例代码似乎该示例尝试使用默认相机构造相机对象。方法setCamera
显然是用无效的相机信息调用的。
setCamera(QCameraInfo::defaultCamera());
您可以通过将其更改为
QCameraInfo info = QCameraInfo::defaultCamera();
if (!info.isNull())
{
setCamera(info);
}
else
{
qError() << "Default camera not found!";
}
它显然希望从 中找到相机/dev/video0
。你可以检查它是否存在。如果您的摄像头类似于 video1 或 video2,您可以将其重命名为 video0 并重试。
您还可以在 Camera 类构造函数的 for 循环中添加调试消息,以查看可用摄像头的设备名称(并修改代码以选择默认摄像头以外的设备)。
foreach (const QCameraInfo &cameraInfo, QCameraInfo::availableCameras()) {
{
qDebug() << cameraInfo.deviceName();
}