更新:,我知道如何打开/关闭相机闪光灯。我想知道的是,相机的闪光灯是否是,,,,是否已经亮了。
我想知道相机闪光灯是否在iPhone上亮着,但我还没有在UIImagePickerController中找到任何允许我这样做的方法。我知道我们可以得到cameraFlashMode。但我想知道相机的闪光灯是否已经亮了。
例如,如果模式是UIImagePickerControllerCameraFlashModeAuto,在我进行控制之前,相机闪光灯可以亮或不亮,并且在进行某些操作之前,我想知道相机闪光灯的状态。
发布于 2015-09-29 21:18:00
令人惊讶的是,这真的是没有答案的第一个人甚至没有回答这个问题..。
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()
}发布于 2013-03-01 10:46:36
您可以使用以下代码来查找
#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];
}
}
}编码愉快.!!
发布于 2016-07-12 08:58:45
我也经历过和你一样的问题。
iOS支持两种模式-闪光灯和火炬。下面的代码检查每个代码是否可用&然后根据您调用的代码是否打开或关闭它们。此外,它检查灯是否已经开/关。
闪光灯-
-(void)flashOn {
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
[device lockForConfiguration:nil];
if ([device hasFlash]) {
if ([device flashMode] == AVCaptureFlashModeOff) {
[device setFlashMode:AVCaptureFlashModeOn];
}
}
if ([device hasTorch]) {
if ([device torchMode] == AVCaptureTorchModeOff) {
[device setTorchMode:AVCaptureTorchModeOn];
}
}
[device unlockForConfiguration];
}
}闪光灯-
-(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];
}
}https://stackoverflow.com/questions/15155008
复制相似问题