2

iPhoneアプリからビデオを録画しています。

カメラの上にオーバーレイを使用し、オーバーレイにボタンを配置しました。ビデオの録画中にカメラのフラッシュをオン/オフできる機能を知りたいです。

カメラ オーバーレイにフラッシュ ボタンを設定するにはどうすればよいですか?

4

2 に答える 2

4

ビデオ録画に使用している場合はAVFoundation、最初にデバイスにトーチ/フラッシュがあるかどうかを確認する必要があります。これは、ビデオがバック カメラから録画されているときにトーチが使用できるためです。フロント カメラを使用している場合はトーチ/フラッシュを使用できません。このようなものを使用して

- (BOOL) hasTorch
{
    return [[[self avCaptureDeviceInput] device] hasTorch];
}

を使用して、それに応じてトーチを設定しますAVCaptureTorchMode

- (void) setTorchMode:(AVCaptureTorchMode)torchMode
{
    AVCaptureDevice *device = [[self videoInput] device];
    if ([device isTorchModeSupported:torchMode] && [device torchMode] != torchMode) {
        NSError *error;
        if ([device lockForConfiguration:&error]) {
            [device setTorchMode:torchMode];
            [device unlockForConfiguration];
        } else {
            id deleg = [self delegate];
            if ([deleg respondsToSelector:@selector(acquiringDeviceLockFailedWithError:)]) {
                [deleg acquiringDeviceLockFailedWithError:error];
            }
        }
    }
}

Apple の AVCam Demoに従うと、基本的に答えが得られます。

于 2013-03-06T11:29:23.577 に答える
4

(タグから)UIImagePickerControllerを使用していると仮定すると、UIImagePickerControllerによって提供されるcameraFlashModeを使用してフラッシュを制御します。

その値を UIImagePickerControllerCameraFlashModeOff、UIImagePickerControllerCameraFlashModeAuto、または UIImagePickerControllerCameraFlashModeOn に設定できます。デフォルトは自動です。

于 2013-03-06T11:33:49.937 に答える