[iPhone] Cameraでビデオ撮影する, AVCaptureVideoDataOutput

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

stillimage2
 

Swift 3.0.2
Xcode 8.2.1

 

AVCaptureVideoDataOutput

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

  1. 実機で試す
    • simulatorではデバッグできません、実機で試してください。
      the Camera app is available only on hardware devices and cannot be replicated in the simulator

      Simulator User Guide
      と当然のように言っていますが、「Androidの emulator」ではPCのカメラを使ってできますよ、Appleさん..

  2. Info.plistの編集
  3. Dual cameraの設定はここではやりません。
  4. Live Photosの設定はここではやりません

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

AVFoundation の framework をプロジェクトに追加します

Swift3(iOS10)の変更としてAVCaptureDevice.devices()が非推奨になりました。
AVCaptureDevice.defaultDevice(withDeviceType:mediaType:position:)
をここでは代わりとして使っています。

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ビデオ

 
関連:

 
Ref:
AVFoundation プログラミングガイド


ページのトップへ戻る

シェアする

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

フォローする