[iPhone] AVCaptureVideoDataOutput ビデオで静止画撮影する

前に UIImagePickerControllerAVCapturePhotoOutput でカメラを扱いましたが
AVCaptureVideoDataOutput でも静止画を撮影できます。ただし基本的には動画撮影用です。
画面タップでシャッターを切る例です。余談ですがプレビュー無しの無音カメラができてしまいます。
 

Swift 4.0
Xcode 9.2

 

AVCaptureVideoDataOutput

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

  1. 実機で試す
  2. Info.plistの編集
    • 以下の設定をInfo.plistに記述しないとエラーになります。
      UIImagePickerController による Camera撮影

  3. Dual cameraの設定はここではやりません。
  4. Live Photosの設定はここではやりません

Tap を受け取るために、UIGestureRecognizerDelegate をdelegateで設定します

ViewController.swift

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

キャプチャ・クオリティの設定は
VideResolution = AVCaptureSessionPresetHigh
としていますが、その他の設定もできます

  1. AVCaptureSessionPresetPhoto
    • 写真用の最大解像度, ビデオ出力ではサポートされない
  2. AVCaptureSessionPresetHigh
    • 最高の録画品質
  3. AVCaptureSessionPresetMedium
    • WiFi共有用
  4. AVCaptureSessionPresetLow
    • 3G共有
  5. AVCaptureSessionPreset352x288
    • CIF
  6. AVCaptureSessionPreset640x480
    • VGA
  7. AVCaptureSessionPreset1280x720
    • HD, 720p
  8. AVCaptureSessionPresetiFrame960x540
    • 960×540のiFrame H.264ビデオ
  9. AVCaptureSessionPresetiFrame1280x720
    • 1280×720iFrame H.264ビデオ

 
関連:

 

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




ページのトップへ戻る

シェアする

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

フォローする