iPhoneアプリからビデオを録画しています。
カメラの上にオーバーレイを使用し、オーバーレイにボタンを配置しました。ビデオの録画中にカメラのフラッシュをオン/オフできる機能を知りたいです。
カメラ オーバーレイにフラッシュ ボタンを設定するにはどうすればよいですか?
iPhoneアプリからビデオを録画しています。
カメラの上にオーバーレイを使用し、オーバーレイにボタンを配置しました。ビデオの録画中にカメラのフラッシュをオン/オフできる機能を知りたいです。
カメラ オーバーレイにフラッシュ ボタンを設定するにはどうすればよいですか?
ビデオ録画に使用している場合は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に従うと、基本的に答えが得られます。
(タグから)UIImagePickerControllerを使用していると仮定すると、UIImagePickerControllerによって提供されるcameraFlashModeを使用してフラッシュを制御します。
その値を UIImagePickerControllerCameraFlashModeOff、UIImagePickerControllerCameraFlashModeAuto、または UIImagePickerControllerCameraFlashModeOn に設定できます。デフォルトは自動です。