Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 리펙토링
- uitableview
- 리펙터링
- SWIFT
- Clean Code
- tableView
- combine
- HIG
- RxCocoa
- swift documentation
- 스위프트
- Observable
- rxswift
- UICollectionView
- swiftUI
- Refactoring
- ribs
- uiscrollview
- Protocol
- Human interface guide
- 클린 코드
- 리팩토링
- MVVM
- UITextView
- Xcode
- 애니메이션
- map
- collectionview
- ios
- clean architecture
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 1. AVFoundation 개념 - 구조, AVAsset, AVKit 본문
1. AVFoundation 개념 - 구조, AVAsset, AVKit
2. AVFoundation 개념 - AVPlayer, AVPlayerItem
3. AVFoundation 개념 - AVPlayer 오디오 재생, 일시정지, 재생구간 이동 구현 (play, pause, seek)
4. AVFoundation 개념 - AVPlayer, AVPlayerLayer로 동영상 재생 방법
5. AVFoundation 개념 - AVAudioSession 개념 (오디오 활성화, 입출력 변경, 잠금화면 재생, 재생 중 전화가 온 경우 처리)
AVFoundation
- 시간에 따른 시청각 미디어 재생 / 생성 할 수 있게 해주는 프레임워크
- Objective-c 인터페이스를 제공해주어 아래와같은 미디어에 대한 상세한 컨트롤이 가능
- 미디어 파일 검사 / 생성 / 편집 / 재인코딩 가능
- 실시간 캡쳐 가능
- 재생중 입력 Stream을 가져와서 비디오 컨트롤이 가능
AVFoundation의 아키텍처
- AVFoundation은 UIKit보다 Core쪽에 가깝게 맞닿아 있는 프레임워크
- AVFoundation에서는 특별히 Audio를 처리하는 클래스가 별도로 존재
- 단순 재생: AVAudioPlayer
- 오디오를 녹음: AVAudioRecorder
AVFoundation에서의 미디어 표현 - AVAsset
- AVAsset: url로 미디어를 객체화하는 역할
- AVAsset에 있는 미디어 데이터의 각 부분을 `track` 트랙이라고 정의
- 메타데이터보통 AVAsset은 데이터가 크므로, 비동기적으로 로드하여 AVAsset을 로드
- AVAsset 인스턴스를 통해 미디어 데이터의 재생 가능 여부, 총 재생 시간, 생성 날짜, 메타 데이터 사용이 가능
AVKit
- AVFoundation를 가지고 UI를 구현하려면, UIKIt 밑단에 있기 때문에 표준화된 UI를 제공하지 않으므로 AVFoundation과 low-level 수준의 깊은 지식이 필요
- AVKit은 AVFoundation위에 존재하고 미디어 플레이어 Interface를 쉽게 제공하는 SDK
- 화면에 자막을 표출하는 기능까지 제공
- 보통 재생 UI를 커스텀하지 않고 주어지는 UI를 그대로 사용하고 싶은 경우, AVKit을 쓰고 커스텀을 하고 싶은 경우에는 다음에서 알아볼 AVPlayer, AVPlayerItem을 사용
AVKit
- AVFoundation 바로 위에 존재하며, AVKit을 사용하면 미디어 플레이어의 interface를 쉽게 구현 가능
- 자막 출력
- 미디어 재생 관리 제공
- AVKit 안에 있는 AVPlayerViewController 클래스는 AVFoundation에 직접적ㅇ니 접근을 제공하므로, 미디어 재생에 관련된 다양한 기능들을 구현 가능
* 참고
https://developer.apple.com/documentation/avfoundation/avasset
'iOS 기본 (swift)' 카테고리의 다른 글
Comments