我正在尝试在Ubuntu上执行QCamera示例,使用的是Qt 5.6版本。出现了“相机服务缺失”的提示消息。
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera"
我正在尝试在Ubuntu上执行QCamera示例,使用的是Qt 5.6版本。出现了“相机服务缺失”的提示消息。
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.camera"
请检查您是否已安装所有依赖项,包括:
qtmultimedia5-dev
_
libqt5multimedia5-plugins
例如:
sudo apt-get install libqt5multimedia5-plugins
检查示例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();
}