更新:我知道如何打开/关闭相机闪光灯。我想知道的是相机闪光灯是否已经点亮。
我想知道iPhone上的相机闪光灯是否亮起,但我在UIImagePickerController
中找不到允许我这样做的任何方法。我知道我们可以获得cameraFlashMode。但我想知道相机闪光灯是否已经点亮。
例如,如果模式为UIImagePickerControllerCameraFlashModeAuto
,在拍摄控件之前相机闪光灯是否可以点亮,我想在进行某些操作之前知道相机闪光灯的状态。
答案 0 :(得分:0)
您可以使用以下代码来查找
#import <AVFoundation/AVFoundation.h>
- (void) turnTorchOn: (bool) on {
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([device hasTorch] && [device hasFlash]){
[device lockForConfiguration:nil];
if (on) {
NSLog(@"Torch is ON");
} else {
NSLog(@"Torch is OFF");
}
[device unlockForConfiguration];
}
}
}
快乐编码...... !!!
答案 1 :(得分:0)
令人惊讶的是,第一个回答的人甚至没有回答这个问题......
func torchButtonPressed() {
//
let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
do {
try device.lockForConfiguration()
} catch {
return
}
if device.torchMode == AVCaptureTorchMode.Off {
do {
device.torchMode = AVCaptureTorchMode.On
try device.setTorchModeOnWithLevel(AVCaptureMaxAvailableTorchLevel)
} catch {
print("no torch")
return
}
} else {
device.torchMode = AVCaptureTorchMode.Off
}
device.unlockForConfiguration()
}
答案 2 :(得分:0)
我和你的问题一样。
iOS支持两种模式 - Flash Light&amp;火炬。下面的代码检查每个代码是否可用&amp;然后根据你打的那个打开或关闭它们。它还会检查指示灯是否已打开/关闭。
Flash On -
-(void)flashOff {
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
[device lockForConfiguration:nil];
if ([device hasFlash]) {
if ([device flashMode] == AVCaptureFlashModeOn) {
[device setFlashMode:AVCaptureFlashModeOff];
}
}
if ([device hasTorch]) {
if ([device torchMode] == AVCaptureTorchModeOn) {
[device setTorchMode:AVCaptureTorchModeOff];
}
}
[device unlockForConfiguration];
}
}
Flash Off-
shinysky