[TIL] AVFoundation

Eden·2025년 7월 24일

AVFoundation은 iOS 및 macOS에서 오디오와 비디오 작업을 위한 프레임워크입니다.
미디어 캡처, 편집, 재생, 내보내기 등 다양한 기능을 제공합니다.


1. AVFoundation란?

  • 애플의 멀티미디어 처리 프레임워크
  • 오디오·비디오 캡처, 편집, 재생 기능 제공
  • 카메라, 마이크를 활용한 실시간 스트리밍 가능
  • Swift 및 Objective-C 모두에서 사용 가능

2. 주요 기능

  • 미디어 캡처: 카메라, 마이크를 사용해 영상 및 음성 데이터 수집
  • 미디어 재생: 오디오, 비디오 파일 재생
  • 미디어 편집: 클립 자르기, 합성, 필터 적용
  • 미디어 내보내기: 다양한 포맷으로 변환 및 저장

3. 핵심 클래스

클래스설명
AVPlayer오디오, 비디오 재생
AVPlayerItemAVPlayer에 로드되는 개별 미디어
AVAsset비디오, 오디오 파일의 메타데이터 및 데이터 제공
AVCaptureSession입력(카메라, 마이크)과 출력(화면, 파일)을 관리
AVCaptureDevice카메라, 마이크 같은 하드웨어 장치
AVAudioPlayer오디오 파일 재생
AVAudioRecorder오디오 녹음

4. 기본 사용 예시

4.1 비디오 재생

import AVFoundation
import AVKit

let player = AVPlayer(url: URL(string: "https://example.com/video.mp4")!)
let playerController = AVPlayerViewController()
playerController.player = player
present(playerController, animated: true) {
    player.play()
}

4.2 카메라 캡처

import AVFoundation

let session = AVCaptureSession()
guard let camera = AVCaptureDevice.default(for: .video),
      let input = try? AVCaptureDeviceInput(device: camera) else { return }
session.addInput(input)
session.startRunning()

5. 장점

  • 강력하고 다양한 미디어 기능 지원
  • 저수준 API로 세부 제어 가능
  • 실시간 스트리밍, 편집 가능

6. 단점

  • 러닝 커브가 있음 (구조가 복잡)
  • 권한 설정 필수 (카메라, 마이크, 미디어 접근)

7. 사용 시 권한 설정

Info.plist에 다음 권한 추가 필요:

  • NSCameraUsageDescription
  • NSMicrophoneUsageDescription
  • NSPhotoLibraryUsageDescription

결론

AVFoundation은 iOS에서 오디오와 비디오 처리를 담당하는 핵심 프레임워크입니다.
스트리밍 앱, 카메라 기능, 미디어 플레이어 등 다양한 앱에서 필수적으로 사용됩니다.

profile
iOS Dev

0개의 댓글