[iPhone] Camera撮影, AVCapturePhotoOutput

前に UIImagePickerController でカメラを扱いましたが、AVCapturePhotoOutputを使うとより細かく設定可能です。
iOS9まではAVCaptureStillImageOutputでしたが非推奨となり、代わりがこのAVCapturePhotoOutput です。
iOS11から jpegPhotoDataRepresentation が非推奨となり、fileDataRepresentation を使うようになりました。またPermissionも少し変わりました。

画面タップでシャッターを切る例です。
 

 

Swift 5.1
Xcode 11.3.1

 

AVCapturePhotoOutput

 
この記事でのカバー範囲と注意点です。

  1. 実機で試す
    • simulatorではデバッグできません、実機で試してください。
  2. Info.plistの編集
    • 以下を設定しないとエラーになります。
    • NSCameraUsageDescription
    • NSPhotoLibraryAddUsageDescription
    • NSPhotoLibraryUsageDescription(アプリによっては必要かもしれません)
    • UIImagePickerController
  3. Dual cameraの設定はここではやりません。
  4. Live Photosの設定はここではやりません
    • ファイルが増大するので

以下は Appleのサンプルコード を適当にはしょって作りました。ので、本当はもっと細かく設定しないと売り物にはなりませんので。ここでは基本的なところだけです。

Tap を受け取るために UIGestureRecognizerDelegateをdelegateで設定しています。
AVCapturePhotoCaptureDelegateというdelegateも追加されました。

ViewController.swift

 
レイヤーをViewに追加するところを外すとプレビュー無しの撮影になります

position: .back
position: .front
で背面、前面カメラを切り替えられます
 

関連

Ref:
AVCapturePhotoOutput
Sample Code
シミュレータによるテストとデバッグ – Apple Developer

一人でアプリ開発の限界を感じたら

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンライン・スクールがいいと思います。


TECH ACADEMY
自宅にいながら1時間でプログラミング基礎を習得

こういうものではアプリ作れないと言う意見もありますが、それは結局本人のやる気があるかないかです。やる気があっても独学では突破しにくいところは教えてもらうのが一番早い。


侍エンジニア塾
侍エンジニア塾 無料体験レッスン



とても簡単なことなのに本やネットの画像だけでは分かりにくいことはあります。実際に質問してピンポイントで教えてもらうと、なんだそんなこと、と言うのがけっこうあります。


CodeCamp
~約20,000名の受講生と300社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp




直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。


誤字脱字、意味不明などのご意見は 謙: e-mail まで
ブックマークしておくと便利です このエントリーをはてなブックマークに追加
Twitter:


シェアする

  • このエントリーをはてなブックマークに追加

フォローする