AVFoundation Swift : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction à AVFoundation

AVFoundation est un framework puissant d'Apple, conçu pour gérer l'audio et la vidéo sur les plateformes iOS, macOS, tvOS et watchOS. Il offre aux développeurs une API de haut niveau pour capturer, traiter, lire et éditer du contenu multimédia. Contrairement aux solutions de plus bas niveau (comme Core Audio ou Video Toolbox), AVFoundation abstrait les détails complexes des codecs, des conteneurs et de la synchronisation, vous permettant de vous concentrer sur la logique de votre application.

Pourquoi utiliser AVFoundation ? Elle permet de résoudre un large éventail de tâches :

  • Lecture : Lire des fichiers audio (MP3, AAC, WAV) et vidéo (MP4, MOV, M4V) avec prise en charge des sous-titres et des chapitres.
  • Enregistrement : Capturer la vidéo de la caméra et l'audio du microphone en temps réel.
  • Édition : Créer des compositions à partir de plusieurs pistes, ajouter des effets, couper, modifier la vitesse.
  • Traitement : Extraire des métadonnées, travailler avec des échantillons audio, appliquer des filtres.
  • Streaming : Lire du contenu HLS (HTTP Live Streaming).

AVFoundation est le standard de facto pour le développement sur les appareils Apple. Si vous développez une application qui doit lire de la musique, enregistrer une vidéo ou éditer des podcasts, vous utiliserez ce framework.

Installation (Intégration au projet)

AVFoundation ne s'installe pas via pip ou npm, car c'est un framework natif d'Apple. Il est intégré à Xcode et au SDK. Pour l'utiliser, il suffit d'importer le module dans vos fichiers Swift.

Étapes pour l'intégration :

  1. Ouvrez votre projet dans Xcode.
  2. Dans tout fichier Swift nécessitant la gestion du multimédia, ajoutez la ligne d'import :
import AVFoundation

Aucune autre action n'est requise. Le framework est automatiquement disponible pour tous les projets iOS/macOS.

Configuration des autorisations (iOS)

Pour utiliser la caméra et le microphone, vous devez ajouter des lignes dans le fichier Info.plist :

  • NSCameraUsageDescription — description expliquant pourquoi l'application a besoin de la caméra.
  • NSMicrophoneUsageDescription — description expliquant pourquoi l'application a besoin du microphone.

Sans ces clés, l'application plantera avec une erreur lors de la tentative d'accès aux périphériques.

Démarrage rapide : Lecture audio

L'exemple le plus simple est la lecture d'un fichier audio local. Créez une instance de AVAudioPlayer et appelez la méthode play().

import AVFoundation
import UIKit

class ViewController: UIViewController {
    var audioPlayer: AVAudioPlayer?

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 1. Trouver le chemin du fichier dans le Bundle
        guard let path = Bundle.main.path(forResource: "sample", ofType: "mp3") else {
            print("Fichier non trouvé")
            return
        }
        
        let url = URL(fileURLWithPath: path)
        
        do {
            // 2. Initialiser le lecteur
            audioPlayer = try AVAudioPlayer(contentsOf: url)
            // 3. Préparer la lecture (optionnel mais recommandé)
            audioPlayer?.prepareToPlay()
            // 4. Lancer la lecture
            audioPlayer?.play()
            print("Lecture démarrée")
        } catch {
            print("Erreur d'initialisation du lecteur : \(error.localizedDescription)")
        }
    }
}

Ce code crée un lecteur, charge le fichier sample.mp3 depuis les ressources de l'application et commence sa lecture.

Classes et méthodes principales

Voici les classes et méthodes clés d'AVFoundation utilisées dans 90% des cas. Pour chaque méthode, une description, les paramètres et un exemple fonctionnel sont fournis.

1. AVAudioPlayer

Fonction : Lit des fichiers audio depuis la mémoire ou le système de fichiers. Supporte les formats MP3, AAC, WAV, AIFF, etc.

Recommendations