🎬

AVFoundation

iOS 4+

Apple's framework for working with audiovisual media. AVFoundation provides capabilities for audio playback and recording, video capture, editing, and playback on iOS devices.

Media
Official Apple Documentation →
iOS Version Compatibility
99.8%
coverage

of iOS users worldwide can use AVFoundation (iOS 4+ required)

iOS VersionMarket ShareStatus
iOS 18.730.3%Supported
iOS 18.629.8%Supported
iOS 26.110.7%Supported
iOS 18.56.0%Supported
iOS 16.72.3%Supported
iOS 26.22.0%Supported
iOS 18.31.8%Supported
iOS 15.81.8%Supported
iOS 11.01.7%Supported
iOS 17.61.7%Supported

Key Features

Audio recording and playback

Video capture and playback

Media composition and editing

Camera and microphone access

Asset management and export

Real-time media processing

Code Examples

Play Audio

Simple audio playback with AVAudioPlayer

import AVFoundation

class AudioPlayer {
    var audioPlayer: AVAudioPlayer?
    
    func playSound(named soundName: String) {
        guard let url = Bundle.main.url(forResource: soundName, withExtension: "mp3") else {
            print("Sound file not found")
            return
        }
        
        do {
            audioPlayer = try AVAudioPlayer(contentsOf: url)
            audioPlayer?.play()
        } catch {
            print("Error playing sound: \(error)")
        }
    }
}

Record Audio

Record audio from the microphone

import AVFoundation

class AudioRecorder {
    var audioRecorder: AVAudioRecorder?
    
    func startRecording() {
        let audioFilename = getDocumentsDirectory().appendingPathComponent("recording.m4a")
        
        let settings = [
            AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
            AVSampleRateKey: 12000,
            AVNumberOfChannelsKey: 1,
            AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
        ]
        
        do {
            audioRecorder = try AVAudioRecorder(url: audioFilename, settings: settings)
            audioRecorder?.record()
        } catch {
            print("Could not start recording")
        }
    }
    
    func stopRecording() {
        audioRecorder?.stop()
    }
    
    func getDocumentsDirectory() -> URL {
        FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
    }
}

Camera Capture

Access and configure the device camera

import AVFoundation
import UIKit

class CameraViewController: UIViewController {
    var captureSession: AVCaptureSession?
    var previewLayer: AVCaptureVideoPreviewLayer?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        setupCamera()
    }
    
    func setupCamera() {
        captureSession = AVCaptureSession()
        
        guard let videoCaptureDevice = AVCaptureDevice.default(for: .video) else { return }
        let videoInput: AVCaptureDeviceInput
        
        do {
            videoInput = try AVCaptureDeviceInput(device: videoCaptureDevice)
        } catch {
            return
        }
        
        if (captureSession?.canAddInput(videoInput) ?? false) {
            captureSession?.addInput(videoInput)
        }
        
        previewLayer = AVCaptureVideoPreviewLayer(session: captureSession!)
        previewLayer?.frame = view.layer.bounds
        previewLayer?.videoGravity = .resizeAspectFill
        view.layer.addSublayer(previewLayer!)
        
        captureSession?.startRunning()
    }
}

Frequently Asked Questions

What is AVFoundation?

Apple's framework for working with audiovisual media. AVFoundation provides capabilities for audio playback and recording, video capture, editing, and playback on iOS devices.

Which iOS versions support AVFoundation?

AVFoundation is available on iOS 4 and later. Currently, 99.8% of iOS users worldwide can use this framework.

What are alternatives to AVFoundation?

Related frameworks include Core Audio, Core Media. Each has different capabilities and iOS version requirements.