Ir al contenido principal

onCameraStatusChange()

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

Descripción

Se llama a onCameraStatusChange() cuando se produce un cambio durante la solicitud de permisos de la cámara.

Llamada con el estado y, si procede, una referencia a los nuevos datos disponibles. El flujo de estado típico será:

requesting -> hasStream -> hasVideo.

Parámetros

ParámetroDescripción
estadoUno de [ 'requesting', 'hasStream', 'hasVideo', 'failed' ]
stream: [Opcional]El MediaStream asociado con la alimentación de la cámara, si el estado es 'hasStream'.
video: [Opcional]El elemento DOM de vídeo que muestra el flujo, si el estado es hasVideo.
configLos parámetros de configuración que se pasaron a XR8.run(), si el estado es 'solicitando'.

El parámetro status tiene los siguientes estados:

EstadoDescripción
solicitandoEn "solicitando", el navegador está abriendo la cámara y, si procede, comprobando los permisos del usuario. En este estado, es apropiado mostrar un aviso al usuario para que acepte los permisos de la cámara.
hasStreamUna vez que se han concedido los permisos de usuario y la cámara se ha abierto con éxito, el estado cambia a 'hasStream' y se puede descartar cualquier pregunta de usuario relativa a los permisos.
hasVideoUna vez que los datos de los fotogramas de la cámara comienzan a estar disponibles para su procesamiento, el estado cambia a "hasVideo", y la alimentación de la cámara puede comenzar a mostrarse.
fallidoSi la alimentación de la cámara no se abre, el estado es 'failed'. En este caso es posible que el usuario haya denegado permisos, por lo que es aconsejable ayudarle a volver a habilitarlos.

Ejemplo

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()
}
},
})