在AVCaptureDevice上切换Flash需要停止并启动AVCaptureSEssion
在iOS 7中,当使用以下命令更改AVCaptureDevice
的Flash状态时:
if ([self.avCaptureDevice isFlashModeSupported:self.avCaptureFlashMode]) { NSError *error = nil; [self.avCaptureDevice lockForConfiguration:&error]; if (!error) [self.avCaptureDevice setFlashMode:self.avCaptureFlashMode]; [self.avCaptureDevice unlockForConfiguration]; }
设备不会使用闪光灯,除非AVCaptureSessions
停止并启动:
[self.avCaptureSession stopRunning]; [self.avCaptureSession startRunning];
这会使相机短暂闪烁黑色。 是否可以切换闪光灯而不停止/开始会议?
我在iOS7中有一个类似的闪光相关的问题,如果会议有多个输出(仍然和videodata)和闪光灯被使用,仍然捕获将失败。 在https://devforums.apple.com/message/894764 (在调用captureStillImageAsynchronouslyFromConnection:completion
之前除去第二个输出captureStillImageAsynchronouslyFromConnection:completion
)find解决方法。 显然这也会暂停video,但是如果你有一个快门animation,它可能会更合适。