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

AR セッション中にデバイスのフラッシュ ユニットを有効にすると、視認性が向上します。

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

カメラの構成によっては、フラッシュ ユニットの有効化がサポートされていない場合があります。フラッシュを有効にするか、フラッシュを有効にするオプションをユーザーに提供する前に、アクティブなカメラ構成でフラッシュ ユニットを使用できることを確認します。

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

フラッシュを有効にする

AVCaptureTorchModeOn を使用して AR セッションを構成して、フラッシュ ユニットを有効にします。

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

フラッシュを無効にする

AVCaptureTorchModeOff を使用して AR セッションを構成して、フラッシュ ユニットを無効にします。

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