【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のところは、任意を文字を入力できます。許可をとる時に、その文字を表示することができます。

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

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