> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/productos/idv-suite/flujos-and-integraciones/configuracion-tecnica-del-cliente/sdk-mobile/android-sdk/componentes-modulos/video-grabacion.md).

# Vídeo grabación

## Introducción <a href="#id-1-introduccion" id="id-1-introduccion"></a>

La videograbación de pantalla se realiza con el ***VideoRecording Component***.

Este componente se encarga de capturar la pantalla del dispositivo en segundo plano. Está orientado principalmente para la grabación del proceso de onboarding.

***

## Dependencia <a href="#id-2-dependencia" id="id-2-dependencia"></a>

La dependencia específica del componente es:

```
implementation "com.facephi.androidsdk:video_recording_component:$version"
```

***

## Controladores disponibles <a href="#id-3-controladores-disponibles" id="id-3-controladores-disponibles"></a>

| **Controlador**               | **Descripción**                                            |
| ----------------------------- | ---------------------------------------------------------- |
| FVideoRecordingController     | Controlador principal de video grabación.                  |
| FStopVideoRecordingController | Controlador para realizar la parada de la video grabación. |

### Recepción de errores <a href="#id-61-recepcion-de-errores" id="id-61-recepcion-de-errores"></a>

Los errores se devolverán como un objeto 'VideoRecordingError'.

Lista de errores:

<details>

<summary>Listado de errores de videograbación:</summary>

* VRC\_CANCEL\_BY\_USER: El usuario ha cancelado el proceso
* VRC\_COMPONENT\_LICENSE\_ERROR: La licencia del componente no es correcta
* VRC\_EMPTY\_LICENSE: El String de licencia está vacío
* VRC\_INITIALIZATION\_ERROR: Error de inicialización
* VRC\_OPERATION\_NOT\_CREATED: No hay ninguna operación en curso
* VRC\_NETWORK\_CONNECTION: Error en la conexión a internet
* VRC\_PERMISSION\_ERROR: El usuario ha rechazado los permisos necesarios. Con `enableAudio=true` también cubre la denegación o cierre del permiso de micrófono y el rechazo del permiso de `MediaProjection`.
* VRC\_SOCKET\_ERROR: Error en la conexión de los servicios
* VRC\_UNKNOWN\_ERROR: Error desconocido
* VRC\_VIDEO\_CALL\_ACTIVE: No se puede iniciar porque hay una videollamada activa
* VRC\_VIDEO\_ERROR: Error en el procesamiento del vídeo
* VRC\_VIDEO\_RECORDING\_ACTIVE: No se puede iniciar porque el proceso de grabación de vídeo está activo
* VRC\_FETCH\_DATA\_ERROR: Error en la recogida del resultado

</details>

## Configuración avanzada <a href="#id-7-configuracion-avanzada" id="id-7-configuracion-avanzada"></a>

El controlador utiliza `VideoRecordingConfigurationData` para configurar la conexión con el servicio de vídeo y el comportamiento de la grabación:

* `url`: Ruta al socket de vídeo. Normalmente se obtiene de la licencia, salvo en entornos OnPremise.
* `apiKey`: Clave necesaria para la conexión con el socket de vídeo.
* `tenantId`: Identificador del tenant del cliente.
* `enableAudio`: Activa la captura de audio durante la grabación de pantalla. Por defecto `false`. Si se informa como `true`, Android solicita `RECORD_AUDIO` antes del permiso de `MediaProjection`; si el usuario deniega o cierra el permiso, el componente devuelve `VRC_PERMISSION_ERROR`.

## Recepción del resultado correcto - *data* <a href="#id-8-recepcion-del-resultado-correcto-data" id="id-8-recepcion-del-resultado-correcto-data"></a>

En caso de éxito, `data` contiene un `VideoRecordingResult`.

* `state`: Estado de la grabación. `SHARING` indica que la grabación queda iniciada y `FINISH` indica que se ha detenido correctamente.
