AVCaptureSession
概要
AVCaptureSession は、その名の通りあるキャプチャのセッションとしての役割を持つ。入力デバイスと出力先を設定した上で startRunning() でデータの入出力を開始し、stopRunning() で終了することができる。 startRunning() や stopRunning() は時折スレッドをブロックするため、main スレッド以外で実行することが推奨されている。
設定値の更新
Session の複数の設定項目を一度に変更したい場合には beginConfiguration() 及び commitConfiguration() を利用する必要がある。複数の設定項目というのは例えば、入出力先の変更や、sessionPreset の変更、及び各入出力インスタンスのプロパティの変更などになる。 sessionPreset
sessionPreset プロパティは、出力時の品質やビットレートを設定できる。デフォルトでは high に設定されており、low 〜 high の他にも様々な設定可能な値が存在する。一覧は下記で確認できる。 キャプチャの入力には以下のような種類があるようだ。
イマイチ分からず...
macOS 専用。スクリーンの録画を行う
画像やライブフォト等への出力
深度データの出力
QuickTime ムービーファイルとして映像/音声を保存する (.mov ファイルにしか対応していないので注意) キャプチャした映像から圧縮/非圧縮されたフレームを取得できる
圧縮は macOS でのみサポートされているので注意
データは delegate メソッド経由で受け取る必要がある
録画を音声データに保存する
出力ファイルのフォーマット等は設定することができる
音声データの sample buffers を取得できる
入力データのメタデータを取得できる
通常は他の出力先と同時に用いる
出力デバイスは、キャプチャ中の音声を再生することができる