> 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/ios-sdk/modulos/video-grabacion.md).

# Vídeo grabación

Este componente necesita una versión mínima de iOS13

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

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.

## Dependencias

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***.

### Cocoapods

* Actualmente las librerías de FacePhi se distribuyen de forma remota a través de diferentes gestores de dependencias, en este caso Cocoapods. Las dependencias **obligatorias** que deberán haberse instalado previamente (añadiéndolas en el fichero Podfile del proyecto) son:

```swift
  pod 'FPHISDKMainComponent', '~> $VERSION'
```

* Para instalar el componente de Selphi deberá incluirse la siguiente entrada en el Podfile de la aplicación:

```swift
  pod 'FPHISDKVideoRecordingComponent', '~> $VERSION'
```

### SPM

* Las dependencias obligatorias que deberán haberse instalado previamente son:

```sh
//HTTPS
https://github.com/facephi-clienters/SDK-SdkPackage-SPM.git
//SSH
git@github.com:facephi-clienters/SDK-SdkPackage-SPM.git
```

* Para instalar el componente de SELPHI deberá incluirse en los módulos del proyecto:

```swift
//HTTPS
https://github.com/facephi-clienters/SDK-VideoRecording-SPM.git
//SSH
git@github.com:facephi-clienters/SDK-VideoRecording-SPM.git
```

## Permisos

En la aplicación cliente donde se vayan a integrar los componentes es necesario incorporar el siguiente elemento en el fichero **Info.plist** cuando la grabación vaya a incluir audio:

```
Es necesario permitir el uso del micrófono (NSMicrophoneUsageDescription - Privacy - Microphone Usage Description)
```

{% hint style="info" %}
El permiso de micrófono solo es necesario si activas **`enableAudio`** en **`VideoRecordingConfigurationData`**. Por defecto **`enableAudio`** es **`false`** y la grabación no captura audio.
{% endhint %}

## Controladores disponibles

| **Controlador**           | **Descripcion**                         |
| ------------------------- | --------------------------------------- |
| FVideoRecordingController | Controlador principal de Videograbación |

### Declaración de controlador

```swift
private var videoRecordingController: VideoRecordingController?
```

### 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:

* 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\_MIC\_PERMISSION\_DENIED: El usuario ha rechazado los permisos
* VRC\_WEB\_SOCKET\_REQUEST\_ERROR: Error en la conexión de los servicios
* VRC\_UNKNOWN\_ERROR: Error desconocido
* VRC\_JOIN\_CHANNEL\_ERROR: Error en la conexión con el canal
* VRC\_VIDEO\_RECORDING\_ACTIVE: No se puede iniciar porque el proceso de grabación de vídeo está activo
* VRC\_QUICKTIME\_RECORDING\_ACTIVE: No se puede iniciar porque el proceso de grabación porque una aplicación externa ya está grabando la pantalla
* VRC\_WRONG\_CREDENTIALS\_ERROR: Las credenciales para la conexión con el servicio de videograbación no son correctas
