iOS 7 AVCaptureTorchModeAuto似乎不会在低光照下激活手电筒

use*_*222 9 objective-c avfoundation ios

我已经将AVCaptureDevice TorchMode设置为AVCaptureTorchModeAuto,在AVCaptureSession开始运行后设置了火炬模式.根据Apple的文档,我预计火炬模式会在低光照条件下点亮LED: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];
    }
}
Run Code Online (Sandbox Code Playgroud)

rob*_*cer 7

你没有提到你正在用相机做什么,但是目前(从iOS 7.1开始),除非AVCaptureSession有视频输出,否则自动手电筒模式不起作用.当唯一的其他选项是照片或音频时,这是有道理的,但如果您只对面部或条形码等元数据感兴趣,那么这就是一个问题.

当您设置会话以强制它工作时,您可以使用类似的东西:

if ([captureDevice isTorchModeSupported:AVCaptureTorchModeAuto]) {
    AVCaptureOutput *videoOutput = [[AVCaptureVideoDataOutput alloc] init];
    [session addOutput:videoOutput];
}
Run Code Online (Sandbox Code Playgroud)

如果这是您遇到的问题,我建议您提交错误报告.随意欺骗我的.