Saltar al contenido principal
Version: 2.2.X

Video Recording Component

0. Requisitos base de SDK Mobile​

SDK Mobile es un conjunto de librerías (Componentes) que ofrece una serie de funcionalidades y servicios, permitiendo a su vez su integración en una aplicación Mobile de forma sencilla y totalmente escalable. Dependiendo del caso de uso que se requiera, se deberá realizar la instalación de unos determinados componentes. Su alto nivel de modularidad permite que, en un futuro, se puedan añadir otros componentes nuevos sin afectar en absoluto a los ya integrados en el proyecto.

Para más información sobre la configuración base, vaya a la sección de Primeros Pasos.


1. Introducción​

El Componente tratado en el documento actual recibe el nombre de VideoRecording Component. Éste se encarga de capturar la pantalla del dispositivo en segundo plano. Está orientado principalmente para la grabación del proceso de onboarding.


2. Integración del componente​

Antes de integrar este componente se recomienda leer la documentación relativa a:

Primeros Pasos y seguir las instrucciones indicadas en dicho documento.

En esta sección se explicará paso a paso cómo integrar el componente actual en un proyecto ya existente.

2.1. Dependencias requeridas para la integración​

Para evitar conflictos y problemas de compatibilidad, en caso de querer instalar el componente en un proyecto que contenga una versión antigua de las librerías de Facephi (Widgets), éstos deberán eliminarse por completo antes de la instalación de los componentes de la SDKMobile.

  • Actualmente las librerías de FacePhi se distribuyen de forma remota a través de diferentes gestores de dependencias. Las dependencias obligatorias que deberán haberse instalado previamente:

    implementation "com.facephi.androidsdk:video_recording_component:$sdk_video_recording_component_version"

3. Iniciar nueva operación​

Cuando se desea realizar una determinada operación, para generar la información asociada correctamente en la plataforma deberá ejecutarse previamente el comando newOperation.

Este comando debe haberse ejecutado anteriormente al lanzamiento del componente.

Para saber más acerca de cómo iniciar una nueva operación, se recomienda consultar la documentación de Primeros Pasos, en el que se detalla y explica en qué consiste este proceso.


4. Controladores disponibles​

ControladorDescripción
VideoRecordingControllerControlador principal de video grabación.
StopVideoRecordingControllerControlador para realizar la parada de la video grabación.

5. Configuración del componente​

Para configurar el componente actual, una vez inicializado, se deberá crear un objeto

VideoRecordingConfigurationData y pasarlo como parámetro al SDKController durante el lanzamiento del componente.

En el siguiente apartado se mostrarán los campos que forman parte de esta clase y para qué se utiliza cada uno de ellos.

5.1. Class VideoRecordingConfigurationData​

Los campos incluidos en la configuración, normalmente no es necesario que sean informados ya que se completan internamente a través de la licencia usada.

Estos campos suelen informarse solo cuando el servidor es OnPremise.

5.1.1. url​

Ruta al socket de video

5.1.2. apiKey​

ApiKey necesaria para la conexión con el socket de video

5.1.3. tenantId​

Identificador del tenant que hace referencia al cliente actual, necesario para la conexión con el servicio de video.


6. Uso del componente​

6.1 Iniciar grabación​

Una vez iniciado el componente y creada una nueva operación (apartado 3) se podrán lanzar los componentes del SDK.

IMPORTANTE: La aplicación cliente debe controlar el ciclo de vida de la aplicación y llamar al método de parada del servicio cuando considere (Ejemplo: Al ponerse la aplicación en segundo plano). El servicio si no se realiza la parada, sigue grabando la pantalla.

Los controladores de grabación devolverán estados para indicar la evolución del proceso.

Hay dos formas de lanzar el componente:

  • [CON TRACKING] Esta llamada permite lanzar la funcionalidad del componente con normalidad, pero sí se trackearán los eventos internos al servidor de tracking:
val controller = VideoRecordingController(VideoRecordingConfigurationData())

controller.setOutput {
Napier.d("APP: VIDEO RECORDING STATE (start): ${it.name}")
}

viewModelScope.launch {
SDKController.launch(controller)
}
  • [SIN TRACKING] Esta llamada permite lanzar la funcionalidad del componente con normalidad, pero no se trackeará ningún evento al servidor de tracking:
val controller = VideoRecordingController(VideoRecordingConfigurationData())

controller.setOutput {
Napier.d("APP: VIDEO RECORDING STATE (start): ${it.name}")
}

viewModelScope.launch {
SDKController.launch(controller)
}

El método launch debe usarse por defecto. Este método permite utilizar tracking en caso de estar su componente activado, y no lo usará cuando esté desactivado (o no se encuentre el componente instalado).

Por el contrario, el método launchMethod cubre un caso especial, en el cual el integrador tiene instalado y activado el tracking, pero en un flujo determinado dentro de la aplicación no desea trackear información. En ese caso se usa este método para evitar que se envíe esa información a la plataforma.

6.2 Parar grabación​

Una vez iniciado el componente y creada una nueva operación (apartado 3) se podrán lanzar los componentes del SDK.

Los controladores de grabación devolverán estados para indicar la evolución del proceso.

Hay dos formas de lanzar el componente:

  • [CON TRACKING] Esta llamada permite lanzar la funcionalidad del componente con normalidad, pero sí se trackearán los eventos internos al servidor de tracking:
val controller = StopVideoRecordingController()

controller.setOutput {
Napier.d("APP: VIDEO RECORDING STATE (stop): ${it.name}")
}

viewModelScope.launch {
SDKController.launch(controller)
}
  • [SIN TRACKING] Esta llamada permite lanzar la funcionalidad del componente con normalidad, pero no se trackeará ningún evento al servidor de tracking:
val controller = StopVideoRecordingController()

controller.setOutput {
Napier.d("APP: VIDEO RECORDING STATE (stop): ${it.name}")
}

viewModelScope.launch {
SDKController.launch(controller)
}

El método launch debe usarse por defecto. Este método permite utilizar tracking en caso de estar su componente activado, y no lo usará cuando esté desactivado (o no se encuentre el componente instalado).

Por el contrario, el método launchMethod cubre un caso especial, en el cual el integrador tiene instalado y activado el tracking, pero en un flujo determinado dentro de la aplicación no desea trackear información. En ese caso se usa este método para evitar que se envíe esa información a la plataforma.


7. Recepción del resultado​

La evolución del proceso vendrá indicada a través de los estados:

Los controladores de grabación devolverán estados para indicar la evolución del proceso:

    AGENT_HANGUP,
FINISH,
SHARING,
INITIALIZATION_ERROR,
NETWORK_CONNECTION_ERROR,
PERMISSION_ERROR,
VIDEO_ERROR,
SOCKET_ERROR,
UNKNOWN_ERROR,

Donde SHARING indica que se está grabando la pantalla y FINISH que ha finalizado el proceso.


8. Logs​

Para visualizar en consola los logs de este componente se podrá usar el filtro: "VIDEO_RECORDING:"