我的手电筒应用程序运行良好。出于某种原因,每次我非常快地点击手电筒按钮时,应用程序都会冻结并且不执行任何操作。当我调用 AVCaptureSession stopRunning 时,它似乎冻结了。这是我的切换手电筒方法的代码。我还希望最终调用此方法以实现频闪功能。
- (void)toggleFlashlight{
if (isTorchOn) {
// Start session configuration
[session beginConfiguration];
[device lockForConfiguration:nil];
// Set torch to on
[device setTorchMode:AVCaptureTorchModeOn];
[device unlockForConfiguration];
[session commitConfiguration];
[session startRunning];
}
else {
[session stopRunning];
[session release];
session = nil;
session = [[AVCaptureSession alloc] init];
// Create device input and add to current session
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error: nil];
[session addInput:input];
// Create video output and add to current session
AVCaptureVideoDataOutput *output = [[AVCaptureVideoDataOutput alloc] init];
[session addOutput:output];
[output release];
}
}