iOS
avfoundation
UIKit
Swift

iOSの3種類のカメラ実装

More than 3 years have passed since last update.

いまさらだけどよく忘れるので、備忘録。

iOSでカメラ機能を実装するには、3種類の方法がある。

簡単にいうと、UIKit.frameworkを使うか、AVFoundation.frameworkを使うか、の違い。

─────────

framework

 ├ class

 ├ メリット

 ├ デメリット

─────────


UIKit.framework


UIImagePickerController


UIImagePickerController Class Reference - Apple Developer



メリット


  • 簡単

  • 写真、動画、編集など、一通りのことはできる

  • モックなどをさくっと作るときに便利


デメリット


  • 複雑なことはできない

  • 撮影中のプレビュー画面を加工したりとかはできない


AVFoundation.framework


AVCaptureStillImageOutput


AVCaptureStillImageOutput Class Reference - Apple Developer



メリット


  • 撮影中の映像をそのまま画面に表示することができる

  • プレビュー画面に別のViewを重ねたりできる


  • オリジナルのカメラUIを作りたい場合はこれ


デメリット



  • UIImagePickerControllerに比べて実装が複雑

ちなみに、"still"な"image"で「静止画」


AVFoundation.framework


AVCaptureVideoDataOutput


AVCaptureVideoDataOutput Class Reference - Apple Developer



メリット


  • 撮影中の画像を1枚ずつ加工したいときはこれ

  • 撮影中のプレビューにフィルター効果をつけて、漫画風とかイ◯スタっぽくしたり(リアルタイムで加工できるのがポイント)


  • vineみたいに繋ぎ取りしたい場合もこれ

  • 基本的に動画撮影用だが、静止画も撮影(キャプチャ)できる。(無音カメラとかはこの方法)


デメリット



  • UIImagePickerControllerに比べて実装が複雑

参考



おわり