camera.startCapture

Startet die Videoaufnahme oder die Erfassung von Intervallbildern abhängig vom Wert von captureMode in Optionen. Dieser Befehl wurde in API-Level 2 hinzugefügt.

Parameter

  • Dieser Befehl hat keinen Parameter im Anfragetext. Mit der Option captureMode wird bestimmt, ob es sich um eine Intervall-Bild- oder Videoaufnahme handelt. Ob es sich bei der Intervallerfassung um eine offene Erfassung handelt, hängt davon ab, ob captureNumber gleich oder größer als 0 ist. captureMode, captureInterval und captureNumber müssen vor der Intervallerfassung festgelegt werden. Nur captureMode muss vor der Videoaufnahme auf „Video“ gesetzt werden, was nur mit dem Befehl camera.stopCapture gestoppt werden kann.

Ergebnisse

  • Offene Aufnahme (wenn recordMode == "video" oder recordNumber == 0 ist)
    • Keine Ergebnisse.
  • Intervallaufnahme ohne offenes Ende:
    • fileUrls:Liste absoluter URLs, die für die Intervallaufnahme auf Bilddateien verweisen. Beachten Sie, dass dieser Befehl nicht sofort fileUrls zurückgibt, da die Erfassung captureNumber dauert. Sie können den Fortschritt des Befehls abrufen, indem Sie die Kamera regelmäßig abfragen. Eine Abfrage nach einer geschätzten Dauer (time = captureInterval * (captureNumber - 1)) kann beispielsweise mit der API /osc/commands/status erfolgen. fileUrls ist das Ergebnis, das nach Abschluss des Befehls zurückgegeben wird. Wenn der Befehl nicht erfolgreich abgeschlossen wird (z.B. wurden nur 3 der Bilder aufgenommen, bevor der Akku der Kamera leer ist) oder die Kamera in der Mitte vom Client-Smartphone getrennt wird, der Befehl aber erfolgreich abgeschlossen wurde, sollte der Client später in der Lage sein, die Bilder über camera.listFiles abzurufen, wenn eine neue Verbindung zwischen dem Client und der Kamera hergestellt wird.

Fehler

  • disabledCommand: Der Befehl ist derzeit deaktiviert – zum Beispiel, wenn sich die Kamera mitten in einer Videoaufnahme oder einer Intervallaufnahme befindet.
  • invalidParameterName: Der Parametername wurde nicht erkannt. Beispiel: sessionId wird nicht erkannt.

Befehls-E/A

Befehlseingabe
none
Befehlsausgabe
{
    "results": {
        "fileUrls":[
            "url1",
            "url2",
            "url3",
            ...
            "urln"
        ]
    }
}
Befehlsausgabe (Fehler)
{
    "error": {
        "code": "disabledCommand",
        "message": "Command is currently disabled."
    }
}