2016-06-06 20 views
7

Ich versuche, QCamera Beispiel auf Ubuntu, Qt 5.6 auszuführen. Die Meldung "Der Kameradienst fehlt" wurde beobachtet.Qt Kamera Beispiel funktioniert nicht

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

Haben Sie es zu arbeiten? – talamaki

+0

Hast du es funktioniert? Ich habe das gleiche Problem auf Kubuntu16.04 mit QT 5.7. Ich habe/dev/video0 und VLC kann von der Kamera streamen. – zorglub76

Antwort

0

Überprüfung der Beispiel code es scheint das Beispiel versucht, die Kamera-Objekt mit Standard Kamera zu konstruieren. Die Methode setCamera wird offensichtlich mit Kamera-Informationen aufgerufen, die nicht gültig sind.

setCamera(QCameraInfo::defaultCamera()); 

Sie können das überprüfen, indem sie

QCameraInfo info = QCameraInfo::defaultCamera(); 
if (!info.isNull()) 
{ 
    setCamera(info); 
} 
else 
{ 
    qError() << "Default camera not found!"; 
} 

Ändern Sie offensichtlich die Kamera von /dev/video0 gefunden werden erwartet. Sie könnten prüfen, ob es existiert. Wenn Ihre Kamera etwa video1 oder video2 ist, können Sie sie in video0 umbenennen und es erneut versuchen.

Sie können der for-Schleife im Camera-Klassenkonstruktor auch eine Debug-Meldung hinzufügen, um die Gerätenamen verfügbarer Kameras anzuzeigen (und den Code so zu ändern, dass er eine andere als die Standardkamera auswählt).

foreach (const QCameraInfo &cameraInfo, QCameraInfo::availableCameras()) { 
{ 
    qDebug() << cameraInfo.deviceName(); 
} 
1

Überprüfen Sie, ob Sie alle Abhängigkeiten installiert haben. Sie sind:

qtmultimedia5-dev

_

libqt5multimedia5-plugins

Ex:

sudo apt-get install libqt5multimedia5-plugins 
+0

hat hier nicht funktioniert (Qt5.9) – nerdoc

+1

nein, tat es. Jetzt ist die Fehlermeldung camerabin Plugin für gstreamer 1.10 fehlt. Es ist ein Zeiger auf gstreamer1.0-plugins-bad, der das Problem löst. – elephant