Av foundation record
-
Upload
eunjoo-im -
Category
Technology
-
view
211 -
download
0
Transcript of Av foundation record
![Page 1: Av foundation record](https://reader036.fdocuments.net/reader036/viewer/2022081815/58ed52651a28ab5a6e8b473b/html5/thumbnails/1.jpg)
NHNNEXTEunjooIm
iOSAVFoundation
RecordNHN NEXT
iOS Advanced
![Page 2: Av foundation record](https://reader036.fdocuments.net/reader036/viewer/2022081815/58ed52651a28ab5a6e8b473b/html5/thumbnails/2.jpg)
NHNNEXTEunjooIm
AVFoundation
이란?
▪ iOS and OS X 애플리케이션에서 시각/청각 미디어를 관리하는 Objective-C interface
▪ 오디오와 비디오를 녹음/녹화하고 편집하며 재생할 수 있음
▪ 단순히 비디오 재생을 원할 경우 AVKit을, 단순한 비디오 녹화를 원할 경우 UIKit 사용
출처: https://developer.apple.com/library/prerelease/content/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40010188
![Page 3: Av foundation record](https://reader036.fdocuments.net/reader036/viewer/2022081815/58ed52651a28ab5a6e8b473b/html5/thumbnails/3.jpg)
NHNNEXTEunjooIm
AVFoundation
Stack
출처: https://developer.apple.com/library/prerelease/content/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40010188
http://www.slideshare.net/invalidname/mastering-media-with-av-foundation
<iOS AVFoundation stack> <OS X AVFoundation stack>
Core Audio/OpenAL
가장 저레벨의 오디오 스트리밍 프레임워크
Media Player 전체 화면 비디오 플레이어
AV Foundation오디오 재생을 위한Objective-C 래퍼
Core Video 동영상에 Quartz 효과
Core Media미디어 샘플과 타이밍을 재현하는 구조를 지닌
C 기반 프레임워크
<iOS Media Framworks>
![Page 4: Av foundation record](https://reader036.fdocuments.net/reader036/viewer/2022081815/58ed52651a28ab5a6e8b473b/html5/thumbnails/4.jpg)
NHNNEXTEunjooIm
Asset재생 (1)
출처: https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html#//apple_ref/doc/uid/TP40010188-CH3-SW1
▪ AVPlayer 객체로 직접 Asset을 전달하지 않음
▪ 대신 Asset의 상태를 관리하는 AVPlayerItem 객체 사용
▪ AVPlayerItem은 asset의 track에 맞는 AVPlayerItemTrack을 지님
![Page 5: Av foundation record](https://reader036.fdocuments.net/reader036/viewer/2022081815/58ed52651a28ab5a6e8b473b/html5/thumbnails/5.jpg)
NHNNEXTEunjooIm
Asset재생 (2)
출처: https://developer.apple.com/library/prerelease/content/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40010188
▪ AVPlayerLayer 레이어를 사용할 뷰 설정
▪ AVPlayer 객체 생성
▪ asset을 위한 AVPlayerItem 객체를 생성하고상태 관찰을 위해 Key-Value observing 사용
▪ 아이템이 재생 준비 상태가 되면 버튼 활성화
▪ 아이템을 다 재생하면 플레이어의 헤드를 맨 앞으로 설정
<AVAsset Playback simple example>
https://github.com/luvgaram/AVFoundation_Example/tree/master/AVFoundation_Asset_Playback
![Page 6: Av foundation record](https://reader036.fdocuments.net/reader036/viewer/2022081815/58ed52651a28ab5a6e8b473b/html5/thumbnails/6.jpg)
NHNNEXTEunjooIm
Asset편집
▪ 빠른 속도
▪ 모바일을 위해서 만들어졌기 때문에,데이타를 저장하고 불러오는 것이 빠르고 효율적
▪ AVMutableComposition 클래스를 이용해서 오디오/비디오를 편집할 수 있음
▪ 기존 Asset들을 조합하여 새로운 Asset 생성 가능
출처: https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/03_Editing.html
![Page 7: Av foundation record](https://reader036.fdocuments.net/reader036/viewer/2022081815/58ed52651a28ab5a6e8b473b/html5/thumbnails/7.jpg)
NHNNEXTEunjooIm
오디오 녹음/비디오 녹화
(1)
▪ 단일 AVCaptureSession 객체를 사용해서 여러 개의 인풋/아웃풋 데이터 플로우를 조합 가능
▪ 카메라나 마이크 등 인풋을 위한 AVCatureDevice 객체 준비
▪ 인풋 포트를 설정할 AVCaptureInput 서브클래스 객체 준비
▪ 아웃풋을 위한 AVCaptureOutput 서브클래스 객체 준비
▪ 인풋으로부터 아웃풋로의 데이터 플로우를 만들 AVCaptureSession 객체 준비
출처: https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/04_MediaCapture.html#//apple_ref/doc/uid/TP40010188-CH5-SW2
![Page 8: Av foundation record](https://reader036.fdocuments.net/reader036/viewer/2022081815/58ed52651a28ab5a6e8b473b/html5/thumbnails/8.jpg)
NHNNEXTEunjooIm
오디오 녹음/비디오 녹화
(2)
▪ AVCaptureConnection: 인풋과 아웃풋 사이의 커넥션
▪ (주의: Media Capture로 전면 카메라와 후면 카메라를 동시에 캡쳐할 수는 없음)
출처: https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/04_MediaCapture.html#//apple_ref/doc/uid/TP40010188-CH5-SW2
![Page 9: Av foundation record](https://reader036.fdocuments.net/reader036/viewer/2022081815/58ed52651a28ab5a6e8b473b/html5/thumbnails/9.jpg)
NHNNEXTEunjooIm
오디오 녹음/비디오 녹화
(3)
출처: https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/04_MediaCapture.html#//apple_ref/doc/uid/TP40010188-CH5-SW2
▪ 인풋에서 아웃풋으로의 데이터 플로우를 만드는 AVCaptureSession 객체 생성
▪ 필요한 인풋 타입의 AVCaptureDevice 객체 찾기
▪ 기기를 위한 AVCaptureDeviceInput 객체 생성
▪ 비디오 파일을 만드는 AVCaptureMovieFileOutput 객체 생성
▪ AVCaptureFileOutputRecordingDelegate 객체의델리게이트 구현
▪ 녹화 시작: [AVCaptureMovieFileOutput startRecordingToOutputFileURL:recordingDelegate:]
▪ 녹화 종료: [AVCaptureMovieFileOutput stopRecording]
<AVAsset Playback simple example>
https://github.com/luvgaram/AVFoundation_Example/tree/master/AVCam-iOSUsingAVFoundationtoCaptureImagesandMovies
![Page 10: Av foundation record](https://reader036.fdocuments.net/reader036/viewer/2022081815/58ed52651a28ab5a6e8b473b/html5/thumbnails/10.jpg)
NHNNEXTEunjooIm
참고자료
https://developer.apple.com/library/prerelease/content/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40010188-CH1-SW3
AVFoundation Programming Guide
https://developer.apple.com/library/prerelease/content/samplecode/AVCam/Introduction/Intro.html
AVCam-iOS: Using AVFoundation to Capture Images and Movies
![Page 11: Av foundation record](https://reader036.fdocuments.net/reader036/viewer/2022081815/58ed52651a28ab5a6e8b473b/html5/thumbnails/11.jpg)
NHNNEXTEunjooIm
ThankYou