Introdução ao AVFoundation
\n\nAVFoundation é 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\nPara 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
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\nInstalação (Conexão ao projeto)
\n\nO 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.
Passos para conectar:
\n- \n
- Abra seu projeto no Xcode. \n
- Em qualquer arquivo Swift onde for necessário trabalhar com multimídia, adicione a linha de importação: \n
import AVFoundation\n\nNenhuma ação adicional é necessária. O framework está automaticamente disponível para todos os projetos iOS/macOS.
\n\nConfiguração de permissões (iOS)
\nPara trabalhar com a câmera e o microfone, é necessário adicionar linhas ao arquivo Info.plist:
- \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
Sem essas chaves, o aplicativo falhará com um erro ao tentar acessar os dispositivos.
\n\nInício rápido: Reprodução de áudio
\n\nO exemplo mais simples é tocar um arquivo de áudio local. Crie uma instância de AVAudioPlayer e chame o método play().
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\nEste código cria um player, carrega o arquivo sample.mp3 dos recursos do aplicativo e inicia sua reprodução.
Principais classes e métodos
\n\nAbaixo 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\n1. AVAudioPlayer
\nO que