av foundation record

11
NHN NEXT Eunjoo Im iOS AVFoundation Record NHN NEXT iOS Advanced

Upload: eunjoo-im

Post on 22-Jan-2018

211 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Av foundation record

NHNNEXTEunjooIm

iOSAVFoundation

RecordNHN NEXT

iOS Advanced

Page 2: Av foundation record

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

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

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

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

NHNNEXTEunjooIm

Asset편집

▪ 빠른 속도

▪ 모바일을 위해서 만들어졌기 때문에,데이타를 저장하고 불러오는 것이 빠르고 효율적

▪ AVMutableComposition 클래스를 이용해서 오디오/비디오를 편집할 수 있음

▪ 기존 Asset들을 조합하여 새로운 Asset 생성 가능

출처: https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/03_Editing.html

Page 7: Av foundation record

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

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

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

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

NHNNEXTEunjooIm

ThankYou