AVFoundation para Swift: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução ao AVFoundation

\n\n

AVFoundation é um poderoso framework da Apple, projetado para trabalhar com áudio e vídeo nas plataformas iOS, macOS, tvOS e watchOS. Ele fornece aos desenvolvedores uma API de alto nível para captura, processamento, reprodução e edição de conteúdo multimídia. Ao contrário de soluções de nível mais baixo (como Core Audio ou Video Toolbox), o AVFoundation abstrai os detalhes complexos de codecs, contêineres e sincronização, permitindo focar na lógica da aplicação.

\n\n

Para que serve o AVFoundation? Ele permite resolver uma ampla gama de tarefas:

\n
    \n
  • Reprodução: Tocar arquivos de áudio (MP3, AAC, WAV) e arquivos de vídeo (MP4, MOV, M4V) com suporte a legendas e capítulos.
  • \n
  • Gravação: Capturar vídeo da câmera e áudio do microfone em tempo real.
  • \n
  • Edição: Criar composições a partir de várias faixas, aplicar efeitos, cortar, alterar a velocidade.
  • \n
  • Processamento: Extrair metadados, trabalhar com amostras de áudio, aplicar filtros.
  • \n
  • Streaming: Reproduzir conteúdo HLS (HTTP Live Streaming).
  • \n
\n\n

O AVFoundation é o padrão de facto para desenvolvimento na Apple. Se você está escrevendo um aplicativo que precisa tocar música, gravar vídeo ou editar podcasts — você usará este framework.

\n\n

Instalação (Conexão ao projeto)

\n\n

O AVFoundation não é instalado via pip ou npm, pois é um framework nativo da Apple. Ele está embutido no Xcode e no SDK. Para usá-lo, basta importar o módulo nos arquivos Swift.

\n\n

Passos para conectar:

\n
    \n
  1. Abra seu projeto no Xcode.
  2. \n
  3. Em qualquer arquivo Swift onde for necessário trabalhar com multimídia, adicione a linha de importação:
  4. \n
\n\n
import AVFoundation
\n\n

Nenhuma ação adicional é necessária. O framework está automaticamente disponível para todos os projetos iOS/macOS.

\n\n

Configuração de permissões (iOS)

\n

Para trabalhar com a câmera e o microfone, é necessário adicionar linhas ao arquivo Info.plist:

\n
    \n
  • NSCameraUsageDescription — descrição de por que o aplicativo precisa da câmera.
  • \n
  • NSMicrophoneUsageDescription — descrição de por que o aplicativo precisa do microfone.
  • \n
\n

Sem essas chaves, o aplicativo falhará com um erro ao tentar acessar os dispositivos.

\n\n

Início rápido: Reprodução de áudio

\n\n

O exemplo mais simples é tocar um arquivo de áudio local. Crie uma instância de AVAudioPlayer e chame o método play().

\n\n
import AVFoundation\nimport UIKit\n\nclass ViewController: UIViewController {\n    var audioPlayer: AVAudioPlayer?\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        \n        // 1. Encontra o caminho do arquivo no Bundle\n        guard let path = Bundle.main.path(forResource: "sample", ofType: "mp3") else {\n            print("Arquivo não encontrado")\n            return\n        }\n        \n        let url = URL(fileURLWithPath: path)\n        \n        do {\n            // 2. Inicializa o player\n            audioPlayer = try AVAudioPlayer(contentsOf: url)\n            // 3. Prepara para reprodução (opcional, mas recomendado)\n            audioPlayer?.prepareToPlay()\n            // 4. Inicia\n            audioPlayer?.play()\n            print("Reprodução iniciada")\n        } catch {\n            print("Erro ao inicializar o player: \\(error.localizedDescription)")\n        }\n    }\n}
\n\n

Este código cria um player, carrega o arquivo sample.mp3 dos recursos do aplicativo e inicia sua reprodução.

\n\n

Principais classes e métodos

\n\n

Abaixo estão as principais classes e métodos do AVFoundation, usados em 90% das tarefas. Para cada método, são fornecidos descrição, parâmetros e um exemplo funcional.

\n\n

1. AVAudioPlayer

\n

O que

Recommendations