

# Introdução ao SDK de Transmissão para iOS do IVS \$1 Streaming em tempo real
<a name="broadcast-ios-getting-started"></a>

Este documento descreve as etapas envolvidas ao começar a usar o SDK de Transmissão para iOS para streaming em tempo real do IVS.

## Instalar a biblioteca
<a name="broadcast-ios-install"></a>

Recomendamos integrar o SDK de transmissão usando o Swift Package Manager. (Se preferir, você pode adicionar manualmente a estrutura do framework a seu projeto.)

### Recomendado: integre o SDK de transmissão (Swift Package Manager)
<a name="broadcast-ios-install-swift"></a>

1. Baixe o arquivo Package.swift de [https://broadcast.live-video.net/1.40.0/Package.swift](https://broadcast.live-video.net/1.40.0/Package.swift).

1. Em seu projeto, crie um novo diretório denominado AmazonIVSBroadcast e adicione-o ao controle de versão.

1. Coloque o arquivo Package.swift que foi baixado no novo diretório.

1. No Xcode, vá para **Arquivo > Adicionar dependências de pacote** e selecione **Adicionar local...**.

1. **Navegue e selecione o diretório AmazonIVSBroadcast que você criou e selecione Adicionar pacote**.

1. **Quando receber o prompt **Escolha produtos de pacote para AmazonIVSBroadcast**, selecione **AmazonIVSBroadcastStages** como seu **produto de pacote** definindo o destino da aplicação na seção Adicionar ao destino**.

1. Selecione **Adicionar pacote**.

**Importante:** o SDK de transmissão de streaming em tempo real do IVS inclui todos os atributos do SDK de transmissão de streaming de baixa latência do IVS. Não é possível integrar os dois SDKs no mesmo projeto.

### Abordagem alternativa: instalar o framework manualmente
<a name="broadcast-ios-install-manual"></a>

1. Faça download da versão mais recente em [ 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. Extraia o conteúdo do arquivo. `AmazonIVSBroadcast.xcframework` contém o SDK para dispositivo e para o simulador.

1. Incorporado o `AmazonIVSBroadcast.xcframework` arrastando-o para a seção **Frameworks, Libraries, and Embedded Content** (Frameworks, bibliotecas e conteúdo incorporado) da guia **General** (Geral) para o destino de sua aplicação.  
![\[A seção Estruturas de trabalho, bibliotecas e conteúdo incorporado da guia Geral para o destino da sua aplicação.\]](http://docs.aws.amazon.com/pt_br/ivs/latest/RealTimeUserGuide/images/iOS_Broadcast_SDK_Guide_xcframework.png)

## Solicitar permissões
<a name="broadcast-ios-permissions"></a>

Sua aplicação deverá solicitar permissão para acessar a câmera e o microfone do usuário. (Isso não é específico do Amazon IVS; é necessário para qualquer aplicação que precise acessar câmeras e microfones.)

Aqui, verificamos se o usuário já concedeu permissões; caso contrário, nós as solicitamos:

```
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.
}
```

É necessário fazer isso para os tipos de mídia `.video` e `.audio`, se você quiser acesso a câmeras e microfones, respectivamente.

Também é necessário adicionar entradas para `NSCameraUsageDescription` e `NSMicrophoneUsageDescription` no `Info.plist`. Caso contrário, sua aplicação falhará ao tentar solicitar permissões.

## Desativar o temporizador de ociosidade da aplicação
<a name="broadcast-ios-disable-idle-timer"></a>

Isso é opcional, porém é recomendado. Isso impede que seu dispositivo entre em modo de suspensão enquanto usa o SDK de Transmissão, o que interromperia a transmissão.

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