qt相机示例不起作用

she*_*evv 7 ubuntu qt qt5.6

我正在尝试在Ubuntu,Qt 5.6上执行QCamera示例.观察到"缺少相机服务"消息.

defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera"
Run Code Online (Sandbox Code Playgroud)

Ráf*_*gan 6

检查是否安装了所有依赖项。他们是:

qtmultimedia5-dev

_

libqt5multimedia5-插件

前任:

sudo apt-get install libqt5multimedia5-plugins
Run Code Online (Sandbox Code Playgroud)


tal*_*aki 0

检查示例代码,该示例似乎尝试使用默认相机构造相机对象。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)