如何开启/关闭iPhone相机闪光灯?
答
你将需要几个空语句(doSOmethingfoo和showAcitivtyfoo)和的NSTimer(mytimer)在您的.h文件中,有一些代码
-(void)doSmethingfoo { myTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(showActivityfoo) userInfo:nil repeats:YES]; }
+3
这与主题无关。 – 2014-04-08 03:02:38
+1
你喝醉了吗? – Peter 2017-01-05 00:46:00
答
#import <AVFoundation/AVFoundation.h>
沿...
- (void) turnTorchOn: (bool) on {
// check if flashlight available
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([device hasTorch] && [device hasFlash]){
[device lockForConfiguration:nil];
if (on) {
[device setTorchMode:AVCaptureTorchModeOn];
[device setFlashMode:AVCaptureFlashModeOn];
//torchIsOn = YES; //define as a variable/property if you need to know status
} else {
[device setTorchMode:AVCaptureTorchModeOff];
[device setFlashMode:AVCaptureFlashModeOff];
//torchIsOn = NO;
}
[device unlockForConfiguration];
}
} }
答
我结合上述code.it定时器为我工作...
- (void)viewDidLoad
{
[super viewDidLoad];
myTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(toggleFlashlight) userInfo:nil repeats:YES];
// Do any additional setup after loading the view from its nib.
}
- (void) toggleFlashlight
{
// check if flashlight available
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([device hasTorch] && [device hasFlash]){
[device lockForConfiguration:nil];
if (device.torchMode == AVCaptureTorchModeOff)
{
[device setTorchMode:AVCaptureTorchModeOn];
[device setFlashMode:AVCaptureFlashModeOn];
//torchIsOn = YES;
}
else
{
[device setTorchMode:AVCaptureTorchModeOff];
[device setFlashMode:AVCaptureFlashModeOff];
// torchIsOn = NO;
}
[device unlockForConfiguration];
}
} }
+0
更容易把它放在viewDidAppear中。 – 2015-03-30 16:50:38
不要忘了添加AVFoundation.framework也... – raaz 2012-03-23 17:29:44