我已经将AVCaptureDevice TorchMode设置为AVCaptureTorchModeAuto,手电筒模式是在AVCaptureSession开始运行后设置的。根据苹果公司的文档,我原本以为手电筒模式会在微光条件下点亮发光二极管:https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVCaptureDevice_Class/Reference/Reference.html#//apple_ref/doc/c_ref/AVCaptureTorchMode
然而,在我的测试设备: iPhone 4S、iPhone 5上,手电筒在任何灯光条件下都不亮起。有人遇到过这个问题吗?
下面是我的代码:
- (void)enableTorchMode
{
if ((self.device.hasTorch) && ([self.device isTorchModeSupported:AVCaptureTorchModeAuto]))
{
[self.device lockForConfiguration:nil];
self.device.torchMode = AVCaptureTorchModeAuto;
[self.device unlockForConfiguration];
}
}发布于 2014-04-03 05:01:36
你没有提到你正在用相机做什么,但目前(从iOS 7.1开始),除非AVCaptureSession有视频输出,否则自动手电筒模式不起作用。当唯一的其他选项是照片或音频时,这是有意义的,但如果你只对人脸或条形码等元数据感兴趣,那么这就是一个问题。
您可以在设置会话时使用类似以下内容来强制它工作:
if ([captureDevice isTorchModeSupported:AVCaptureTorchModeAuto]) {
AVCaptureOutput *videoOutput = [[AVCaptureVideoDataOutput alloc] init];
[session addOutput:videoOutput];
}如果这就是你遇到的问题,我推荐你使用filing a bug report。Feel free to dupe mine.
https://stackoverflow.com/questions/21053152
复制相似问题