LoginSignup
14
14

More than 5 years have passed since last update.

swift iOS8カメラ制御(キャプチャセッションのセットアップ)

Last updated at Posted at 2015-08-14

カメラを制御するためにはAVCaptureSessionクラスとその関連クラスを使用して準備が必要です。例えば、入力デバイスとして何を使用するのか?内側カメラか?外側カメラか?、出力先は?ライブビューか?ファイルか?
以下、入力デバイスを外側カメラ、出力先をライブビューとして準備手順を説明します。

1、セッション作成
2、カメラからの画像取得をセッションに追加
3、取得画像出力をセッションに追加
4、画像表示レイヤー生成
5、セッション開始
 

//
//  ViewController.swift
//  camera control
//
//  Created by Misato Morino on 2015/08/13.
//  Copyright (c) 2015年 Atsushi Komuro. All rights reserved.
//

import UIKit
import AVFoundation

class ViewController: UIViewController{
    //セッション
    var CapSession : AVCaptureSession!
    //デバイス
    var CapDevice : AVCaptureDevice!
    //画像アウト
    var ImageOut : AVCaptureStillImageOutput!

    override func viewDidLoad() {
        super.viewDidLoad()

        CapSession = AVCaptureSession()
        let devices = AVCaptureDevice.devices()
        for device in devices{
            if(device.position == AVCaptureDevicePosition.Back){
                CapDevice = device as! AVCaptureDevice
            }
        }

        //VideoInputを取得、セッションに追加
        do{
            let videoInput = try AVCaptureDeviceInput(device: CapDevice)
            CapSession.addInput(videoInput)
        }catch{

        }

        //出力先を生成
        ImageOut = AVCaptureStillImageOutput()

        //セッションに追加
        CapSession.addOutput(ImageOut)

        //画像を表示するレイヤーを生成
        let videoLayer : AVCaptureVideoPreviewLayer = AVCaptureVideoPreviewLayer(session: CapSession!) as AVCaptureVideoPreviewLayer

        videoLayer.frame = self.view.bounds
        videoLayer.videoGravity = AVLayerVideoGravityResizeAspect

        // Viewに追加
        self.view.layer.addSublayer(videoLayer)

        //セッション開始
        CapSession.startRunning()


    }
}

github CameraSetup

14
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14