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