AVCaptureDeviceで取得したデバイスの設定をいろいろ変えたいときがある。カメラの場合はフラッシュ光らせるとか、オートフォーカスにするとか。
AVCaptureDeviceにはfocusMode
やtorchMode
など各種プロパティが存在するが以下のようにやっては変更ができない。
device.focusMode = AVCaptureFlashModeOn;
デバイスはロックされているため、設定を変えたければ一度ロックを行なって、解放するという作業が必要になる。具体的には以下のように書けばよい。
NSError *err;
[device lockForConfiguration:&err];
device.focusMode = AVCaptureFlashModeOn;
[device unlockForConfiguration];
ただむやみにlockを行うと他のアプリケーションのキャプチャ品質に影響を及ぼすのでご注意を。