Ios 停止使用手电筒
我有一个手电筒应用程序。 我用这个来制作闪光灯:Ios 停止使用手电筒,ios,objective-c,nstimer,flashlight,Ios,Objective C,Nstimer,Flashlight,我有一个手电筒应用程序。 我用这个来制作闪光灯: NSTimer * myTimer = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(toggleFlashlight)
NSTimer * myTimer = [NSTimer scheduledTimerWithTimeInterval:0.05
target:self
selector:@selector(toggleFlashlight)
userInfo:nil
repeats:YES];`
- (void)toggleFlashlight{
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];
}
}
}
但我想在按下按钮时停止它。我该怎么做?如果我没有闪光灯,它就可以停止照明。在你的停止方法中(你说除了你有闪光灯,它可以工作),取消任何计划的闪光灯定时器。。。并将相机设置为火炬模式
//stop timer
[myTimer invalidate];
//unflash
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([device hasTorch] && [device hasFlash]){
[device lockForConfiguration:nil];
[device setTorchMode:AVCaptureTorchModeOff];
[device setFlashMode:AVCaptureFlashModeOff];
}
[device unlockForConfiguration];
}