아요 개발 일기

[iOS] AVKit과 AVFoundation 본문

iOS

[iOS] AVKit과 AVFoundation

소진이 2023. 1. 3. 15:31

안녕하세요 :ㅇ

AVKit과 AVFoundation에대해 알아보고 차이점은 무엇인지도 알아볼까요?

 


Apple Developer Documentation를 참고해서 적어보겠습니다!

 

AVFoundation

 

Work with audiovisual assets, control device cameras, process audio, and configure system audio interactions

시청각 assets 작업, device 카메라를 제어하고, 오디오를 처리 및 시스템 오디오 상호작용을 구성합니다.

 

 

The AVFoundation framework combines six major technology areas thar together encompass a wide rang of tasks for capturing, processing, synthesizing, controlling, importing audiovisual media on Apple platforms

 

AVFoundation 프레임워크는 Apple 플랫폼에서 시청각 미디어 캡처, 처리, 합성, 제어, 가져오기 및 내보내기를 위한 광범위한 작업을 함께 포함하는 6가지 주요 기술 영역을 결합합니다.

 

AVKit

 

Create user interfaces for media playback, complete with transport controls, chapter navigation, picture - in - picture support, and display of subtitles and closed captions

전송 제어, 챕터 탐색 , PIP(Picture-in-Picture) 지원, 자막 및 자막 표시가 완비된 미디어 재생을 위한 사용자 인터페이스를 만듭니다.

 

 

 

 

음,, AVFoundation은 전반적인 미디어 컨텐츠(사진, 영상등등)를 모두 다루는 것 같고

AVKit은 AVFoundation에 속해 비디오에 관련된 서비스를 지원하는 것 같아,,요!

근데 그냥 미디어 재생이라고 해놓아서 정확히 잘 모르겠네요...

 

 

 


 

그렇다면!!! Documentation Archive 도 참고해봅시다!

 

 

https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/MediaPlaybackGuide/Contents/Resources/en.lproj/Introduction/Introduction.html#//apple_ref/doc/uid/TP40016757-CH1-SW1

 

문서에 이렇게 친절하게 사진도 올려주셨더라구요!!

한 눈에 딱 들어오죠?! 아까 말한 것과 같게 AVFoundation에 AVKit이 속해있네요!

더 자세한 설명이 있으니 같이 읽어봅시다 !!!

 


 

AVFoundation

AVFoundation은 iOS, tvOS 및 macOS용 Apple의 미디어 프레임워크입니다. 이를 사용하여 미디어 캡처, 편집 및 low-level처리를 비롯한 다양한 미디어 처리 작업을 수행할 수 있지만 가장 자주 사용되는 기능 중 하나는 미디어 재생입니다. AVFoundation을 사용하면 HTTP 라이브 스트리밍을 통해 원격으로 제공되는 QuickTime 영화, MP3 오디오 파일 및 시청각 미디어와 같은 미디어 assets의 재생을 효율적으로 로드하고 제어할 수 있습니다.

AVFoundation의 기능은 기본 미디어 재생 이상으로 확장됩니다. 프레임워크를 사용하면 설명이 포함된 미디어 메타데이터를 쉽게 검색 및 표시하고, 자막(subtitle)과 closed captions(자막의 표시 여부를 설정할 수 있는 자막)을 표시하고, 대체 오디오(alternative audio) 및 비디오 프레젠테이션을 선택할 수 있습니다. 재생 중에 미디어 샘플을 실시간으로 처리하여 미디어를 처리/ 표시되는 방식을 완벽하게 제어할 수도 있습니다.

AVFoundation은 풍부?강력?(rich)한 재생 앱을 구축할 수 있는 다양한 기능을 제공합니다. 그러나 이 프레임워크는 사용자 인터페이스 프레임워크(UIKit) 아래에 있기 때문에 재생을 제어하기 위한 표준 UI를 제공하지 않습니다. 사용자 지정 플레이어 인터페이스를 구축하는 것이 가능하지만, 그렇게 하려면 상당한 작업량이 필요하고 low-level의 AVFoundation 인터페이스에 대한 깊은 이해가 필요합니다. 사용자 인터페이스를 완벽하게 제어하는 것이 바람직한 경우가 분명히 있지만, 더 나은 솔루션은 AVKit 프레임워크에서 제공하는 기능에 의존하는 것입니다.

 

 

 

아이고.. 글 길다....

대놓고 AVKit 프레임워크에서 제공하는 기능에 의존되어있다고 적혀있죠??? 

그럼 이제 AVKit도 볼까요~~?

 

 

AVKit

AVKit은 AVFoundation 위에 구축된 보조 프레임워크입니다. AVKit을 사용하면 플랫폼의 기본 재생 경험과 일치하는 앱용 플레이어 인터페이스를 쉽게 제공할 수 있습니다. AVKit은 AVFoundation의 재생 인프라를 사용하여 재생 중인 콘텐츠와 가장 잘 일치하도록 자동으로 조정되는 플레이어 인터페이스를 제공합니다.

AVKit을 사용하면 플레이어가 자동으로 자막(subtitle)과 closed captions을 표시하고 탐색 가능한 챕터 마커를 표시하며 대체 미디어 옵션을 선택할 수 있는 컨트롤을 제공합니다. AVKit은 시스템 프레임워크이기 때문에 재생 앱은 추가 작업 없이도 향후 운영 체제 업데이트의 새로운 미학과 기능을 자동으로 채택합니다.

프레임워크는 iOS, tvOS 및 macOS에서 사용할 수 있습니다. 모든 플랫폼에서 많은 핵심 기능을 공유하지만 앱에서 사용할 수 있는 여러 플랫폼별 기능도 제공합니다. 

 

여기도 AVKit은 AVFoundation 위에 구축된 보조 프레임워크라고 친절하게 설명되어있죠?!


마무리

 

AVKit은 비디오에 특화되어있는 AVFoundation의 보조 프레임워크!!!

더 다양한 미디어를 사용하고 싶다면 AVFoundation 프레임 워크를 쓰지만,

AVFoundation만으로는 비디오를 제어하기 어려움으로, AVKit을 사용해서 제어하기!