Zum Hauptinhalt springen

onCameraStatusChange()

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

Beschreibung

onCameraStatusChange() wird aufgerufen, wenn eine Änderung bei der Abfrage der Kamerazulassung eintritt.

Aufgerufen mit dem Status und, falls zutreffend, einem Verweis auf die neu verfügbaren Daten. Der typische Statusfluss sieht folgendermaßen aus:

abfrage -> 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: [Optional]Das Video-DOM-Element, das den Stream anzeigt, wenn der Status hasVideo ist.
configDie Konfigurationsparameter, die an XR8.run() übergeben wurden, wenn der Status 'anfordernd' ist.

Der Parameter status hat die folgenden Zustände:

ZustandBeschreibung
beantragenUnter 'beantragen' öffnet der Browser die Kamera und prüft ggf. die Benutzerberechtigungen. In diesem Zustand ist es sinnvoll, den Benutzer aufzufordern, die Kamerazulassung zu akzeptieren.
hasStreamSobald die Benutzerberechtigungen erteilt sind und die Kamera erfolgreich geöffnet wurde, wechselt der Status zu '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 Kamerafeed kann beginnen.
gescheitertWenn sich der Kamerafeed nicht öffnen lässt, lautet der Status 'failed'. In diesem Fall ist es möglich, dass der Benutzer Berechtigungen verweigert hat, und es ist ratsam, 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()
}
},
})