見出し画像

AVFoundationを使用した動画撮影機能の実装方法

AVFoundationを使用して動画撮影機能を実装する方法についてまとめる。
カメラ映像を表示するために必要な

  • カメラ、写真アルバムにアクセスする権限リクエスト

  • キャプチャセッションの構築

  • キャプチャセッションの開始/停止

については、以下の記事でまとめているので本記事では割愛する。


権限リクエスト

アプリ内でiPhoneのカメラを使用して、音声付きの動画を撮影するためには、マイクを使用する権限が必要になる。

Info.plistファイルの編集

マイクを使用する権限をリクエストするためには、

  • Privacy - Microphone Usage Description (NSMicrophoneUsageDescription)

のキーとリクエスト理由をInfo.plistファイルに追加する必要がある。

マイクを使用する権限のリクエスト

var isAuthorizedMic: Bool {
    get async {
        let status = AVCaptureDevice.authorizationStatus(for: .audio)
        var isAuthorized = status == .authorized
        if status == .notDetermined {
            isAuthorized = await AVCaptureDevice.requestAccess(for: .audio)
        }
        
        return isAuthorized
    }
}
  • AVCaptureDevice.authorizationStatus(for: .audio)でマイクを使用する権限ステータスを確認

  • AVCaptureDevice.requestAccess(for: .audio)でマイクを使用する権限をリクエスト

AVCaptureDevice.authorizationStatus(for: .audio)でマイクを使用する権限ステータスを確認する。
アプリ内で一度も権限リクエスト処理を行っていない時 (statusが .notDeterminedの時)は、 AVCaptureDevice.requestAccess(for: .audio)でマイクを使用する権限のリクエストを行う。

ここから先は

5,136字 / 1画像

¥ 200

最後まで記事をお読みいただきありがとうございます! 記事が参考になればフォロー・♥いただけると凄く励みになります🥳