

# Introducción al SDK de transmisión para iOS de IVS \$1 Transmisión en tiempo real
<a name="broadcast-ios-getting-started"></a>

Este documento explica los pasos necesarios para comenzar a utilizar el SDK de transmisión para iOS de la transmisión en tiempo real de IVS.

## Instalación de la biblioteca
<a name="broadcast-ios-install"></a>

Recomendamos que integre el SDK de transmisión a través de Swift Package Manager. (También puede agregar el marco a su proyecto de forma manual).

### Recomendación: integre el SDK de transmisión (Swift Package Manager)
<a name="broadcast-ios-install-swift"></a>

1. Descargue el archivo Package.swift desde [https://broadcast.live-video.net/1.40.0/Package.swift](https://broadcast.live-video.net/1.40.0/Package.swift).

1. En su proyecto, cree un nuevo directorio denominado AmazonIVSBroadcast y agréguelo al control de versiones.

1. Coloque el archivo Package.swift descargado en el nuevo directorio.

1. En Xcode, vaya a **Archivo > Agregar dependencias de paquete** y seleccione **Agregar local…**.

1. Navegue hasta el directorio AmazonIVSBroadcast que ha creado, selecciónelo y elija **Agregar paquete**.

1. Cuando se le pida que **elija productos de paquete para AmazonIVSBroadcast**, seleccione **AmazonIVSBroadcastStages** como su **producto de paquete** mediante la configuración del destino de la aplicación en la sección **Agregar a destino**.

1. Seleccione **Agregar paquete**.

**Importante**: el SDK de transmisión para transmisión en tiempo real de IVS incluye todas las características del SDK de transmisión para transmisión de baja latencia de IVS. No es posible integrar ambos SDK en el mismo proyecto.

### Método alternativo: instalar el marco de forma manual
<a name="broadcast-ios-install-manual"></a>

1. Descargue la versión más reciente desde [https://broadcast.live-video.net/1.40.0/AmazonIVSBroadcast-Stages.xcframework.zip](https://broadcast.live-video.net/1.40.0/AmazonIVSBroadcast-Stages.xcframework.zip).

1. Extraiga el contenido del archivo. `AmazonIVSBroadcast.xcframework` contiene el SDK para el dispositivo y el simulador.

1. Integre el `AmazonIVSBroadcast.xcframework` arrastrándolo a la sección **Frameworks, Libraries, and Embedded Content (Marcos, bibliotecas y contenido integrado)** de la pestaña **General** para el destino de la aplicación.  
![\[La sección Marcos, librerías y contenido integrado de la pestaña General para el destino de la aplicación.\]](http://docs.aws.amazon.com/es_es/ivs/latest/RealTimeUserGuide/images/iOS_Broadcast_SDK_Guide_xcframework.png)

## Solicitar permisos
<a name="broadcast-ios-permissions"></a>

La aplicación debe solicitar permiso para acceder a la cámara y al micrófono del usuario. (Esto no es específico de Amazon IVS; es necesario para cualquier aplicación que necesite acceso a cámaras y micrófonos).

Aquí, verificamos si el usuario ya ha concedido permisos y, de no ser así, preguntamos por ellos:

```
switch AVCaptureDevice.authorizationStatus(for: .video) {
case .authorized: // permission already granted.
case .notDetermined:
   AVCaptureDevice.requestAccess(for: .video) { granted in
       // permission granted based on granted bool.
   }
case .denied, .restricted: // permission denied.
@unknown default: // permissions unknown.
}
```

Es necesario hacer esto para los tipos de medios `.video` y `.audio`, si desea tener acceso a cámaras y micrófonos, respectivamente.

También es necesario agregar entradas para `NSCameraUsageDescription` y `NSMicrophoneUsageDescription` para su `Info.plist`. De lo contrario, la aplicación se bloqueará al intentar solicitar permisos.

## Desactivar el temporizador inactivo de la aplicación
<a name="broadcast-ios-disable-idle-timer"></a>

Esto es opcional, pero recomendable. Evita que el dispositivo se ponga en suspensión mientras utiliza el SDK de transmisión, lo que interrumpiría la transmisión.

```
override func viewDidAppear(_ animated: Bool) {
   super.viewDidAppear(animated)
   UIApplication.shared.isIdleTimerDisabled = true
}
override func viewDidDisappear(_ animated: Bool) {
   super.viewDidDisappear(animated)
   UIApplication.shared.isIdleTimerDisabled = false
}
```