【Xcode】カメラを起動する機能を実装してみる

Xcode

カメラを起動する機能が気になったので、ボタンを押したらカメラが起動する機能を実装してみたいと思います。

開発環境は、XcodeがVersion 12.5.1、言語はSwift5です。

今回は、UIImagePickerControllerクラスを使用して実装してみたいと思います。

まずは、ストーリーボードにボタンを配置します。

ボタンとViewControllerを紐付けます。紐付けができたら、下記のコードをViewControllerに入力します。

import UIKit

class ViewController: UIViewController, UIImagePickerControllerDelegate, 
UINavigationControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func camera(_ sender: UIButton) {
        let sourceType = UIImagePickerController.SourceType.camera
        // 端末でカメラが利用可能か調べる
        if UIImagePickerController.isSourceTypeAvailable(sourceType) {
            let pickerController = UIImagePickerController()
            pickerController.delegate = self
            pickerController.sourceType = sourceType
            // 利用可能な全てのmediaTypeが選択できる
            pickerController.mediaTypes = 
        UIImagePickerController.availableMediaTypes(for: sourceType) ?? []

            // 動画を高画質で保存する
            pickerController.videoQuality = .typeHigh
            present(pickerController, animated: true, completion: nil)
        }
    }
    
    /*
          * 動画の撮影が完了して戻ってきたとき
          */
    func imagePickerController(_ picker: UIImagePickerController, 
     didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        picker.dismiss(animated: true, completion: nil)

        if let url = info[UIImagePickerController.InfoKey.mediaURL] as? NSURL {
                // 端末のカメラロールに保存する
            UISaveVideoAtPathToSavedPhotosAlbum(url.path!, self, nil, nil)
            }
        
        if let uiImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
                    // 写真ライブラリに画像を保存
            UIImageWriteToSavedPhotosAlbum(uiImage, nil, nil, nil)
                }
        }
}

カメラとマイクの使用、ライブラリへ保存することへの許可を得るために、info.plistに設定を追加します。keyの部分にマウスを動かすと、+と−がでてくるので、「+」を選択します。「Privacy – Camera Usage Description」「Privacy – Microphone Usage Description」「Privacy – Photo Library Additions Usage Description」を選択したら設定完了です。Valueのところは、任意を文字を入力できます。許可をとる時に、その文字を表示することができます。

以上で、ボタンを押したらカメラが使用できる機能が実装できると思います。

この記事は下記のサイトを参考に作成しました
Apple Developer Documentation
【iosアプリ開発メモ】カメラを起動させる - Qiita
すること ボタンを押すとカメラが起動する 環境 macOS High Sierra バージョン 10.13.4 Xcode version 9.3 swift4 やってみる 1.ボタンを設置する Main.s...
【Swift】動画撮影&保存&取得【UIImagePickerController】 - はつねむさんぽのパンくずたち
やりたいこと アプリ内で動画を撮影し保存。 また、アプリ内で撮影した動画のみを取得。 実装方法 動画撮影 動画周りはややこしいイメージがあったが、 UIImagePickerControllerを使えば意外と簡単に実装できた。 let sourceType = UIImagePickerController.Sourc...
[iPhone] UIImagePickerController による Camera撮影
iOSでカメラを扱うにはUIImagePickerControllerがあります。撮影して、保存、アルバムで確認するアプリが作れます。 簡単に扱える半面できないこともあり、詳細を設定したい場合はAVCapturePhotoOutput ある
タイトルとURLをコピーしました