默认服务提供程序::请求服务:找不到“org.qt-project.qt.camera”的服务。

8

我正在尝试在Ubuntu上执行QCamera示例,使用的是Qt 5.6版本。出现了“相机服务缺失”的提示消息。

defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera"

你解决了吗?我在Kubuntu16.04上遇到了同样的问题,使用的是QT 5.7。我有/dev/video0,并且VLC能够从相机中进行流媒体传输。 - zorglub76
2个回答

6

请检查您是否已安装所有依赖项,包括:

qtmultimedia5-dev

_

libqt5multimedia5-plugins

例如:

sudo apt-get install libqt5multimedia5-plugins

1
不,确实是这样。现在的错误信息是gstreamer 1.10缺少camerabin插件。它指向gstreamer1.0-plugins-bad,解决了这个问题。 - elephant

0

检查示例code,似乎该示例尝试使用默认相机构造相机对象。显然,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();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接