Zum Hauptinhalt springen

onCameraStatusChange()

onCameraStatusChange: ({ status, stream, video, config })`

Beschreibung

Die Funktion "onCameraStatusChange()" wird aufgerufen, wenn bei der Abfrage der Kamerazulassungen eine Änderung eintritt.

Aufgerufen mit dem Status und ggf. einem Verweis auf die neu verfügbaren Daten. Der typische Statusfluss ist folgender:

Anfordern" -> "hasStream" -> "hasVideo".

Parameter

ParameterBeschreibung
StatusEine von [ 'requesting', 'hasStream', 'hasVideo', 'failed' ]
stream: [Optional]Der MediaStream, der mit dem Kamerafeed verbunden ist, wenn der Status 'hasStream' ist.
Video: [Fakultativ]Das Video-DOM-Element, das den Stream anzeigt, wenn der Status hasVideo lautet.
KonfigurationDie Konfigurationsparameter, die an XR8.run() übergeben wurden, wenn der Status 'requesting' ist.

Der Parameter "Status" hat die folgenden Zustände:

StaatBeschreibung
anfordern.Beim "Anfordern" öffnet der Browser die Kamera und prüft ggf. die Benutzerberechtigungen. In diesem Zustand ist es angebracht, den Benutzer aufzufordern, die Kamerarechte zu akzeptieren.
hasStreamSobald die Benutzerrechte erteilt sind und die Kamera erfolgreich geöffnet wurde, wechselt der Status auf "hasStream" und alle Benutzerabfragen bezüglich der Berechtigungen können verworfen werden.
hasVideoSobald die Kamerabilddaten für die Verarbeitung zur Verfügung stehen, wechselt der Status zu "hasVideo", und die Kameraübertragung kann beginnen.
gescheitertWenn die Kameraübertragung nicht geöffnet werden kann, lautet der Status "fehlgeschlagen". In diesem Fall ist es möglich, dass der Benutzer die Berechtigungen verweigert hat, so dass es ratsam ist, ihm zu helfen, die Berechtigungen wieder zu aktivieren.

Beispiel

XR8.addCameraPipelineModule({
name: 'camerastartupmodule',
onCameraStatusChange: ({status}) {
if (status == 'requesting') {
myApplication.showCameraPermissionsPrompt()
} else if (status == 'hasStream') {
myApplication.dismissCameraPermissionsPrompt()
} else if (status == 'hasVideo') {
myApplication.startMainApplictation()
} else if (status == 'failed') {
myApplication.promptUserToChangeBrowserSettings()
}
},
})