iOS でデバイスのフラッシュ ユニットを使用する

AR セッション中にデバイスのフラッシュ ユニットを有効にすると、 可視化。

現在のカメラの設定がフラッシュに対応していることを確認する

すべてのカメラ設定がフラッシュ ユニットの有効化に対応しているわけではありません。 フラッシュを有効にするか、ユーザーにフラッシュを有効にするオプションを提供する前に、アクティブなカメラ構成でフラッシュ ユニットを使用できることを確認します。

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if (device) {
    return device.hasTorch;
}
return false;

フラッシュ ユニットを有効にする

AR セッションを AVCaptureTorchModeOn:

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if (device) {
    if (device.hasTorch) {
        NSError *error = nil;
        if ([device lockForConfiguration:&error]) {
            device.torchMode = AVCaptureTorchModeOn;
            [device unlockForConfiguration];
        } else {
            return;
        }
    }
}

フラッシュ ユニットを無効にする

AR セッションを AVCaptureTorchModeOff:

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if (device) {
    if (device.hasTorch) {
        NSError *error = nil;
        if ([device lockForConfiguration:&error]) {
            device.torchMode = AVCaptureTorchModeOff;
            [device unlockForConfiguration];
        } else {
            return;
        }
    }
}