【问题标题】:defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera"defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera"
【发布时间】:2016-10-05 16:02:30
【问题描述】:

我正在尝试在 Ubuntu、Qt 5.6 上执行 QCamera 示例。 观察到“相机服务丢失”消息。

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

【问题讨论】:

  • 你让它工作了吗?我在使用 QT 5.7 的 Kubuntu16.04 上遇到了同样的问题。我有 /dev/video0 并且 VLC 能够从相机流式传输。

标签: qt ubuntu qt5.6


【解决方案1】:

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

qtmultimedia5-dev

_

libqt5multimedia5-插件

例如:

sudo apt-get install libqt5multimedia5-plugins

【讨论】:

  • 不,确实如此。现在错误消息是 gstreamer 1.10 缺少 camerabin 插件。它是一个指向 gstreamer1.0-plugins-bad 的指针,它解决了这个问题。
【解决方案2】:

检查示例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();
}

【讨论】:

    猜你喜欢
    • 2012-08-13
    • 2017-07-09
    • 2018-11-04
    • 1970-01-01
    • 2019-01-13
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    相关资源
    最近更新 更多