Ios torchMode在开始时闪烁并立即熄灭
我不明白为什么火炬没有持续打开。Ios torchMode在开始时闪烁并立即熄灭,ios,swift,Ios,Swift,我不明白为什么火炬没有持续打开。 它在启动时闪烁,并立即熄灭。 我也锁定和解锁了 我添加了我的部分代码,我认为这与这里的问题有关 override func viewDidLoad() { super.viewDidLoad() initCamera() } func initCamera(){ captureSession.sessionPreset = .medium guard let device = AVCaptureDevice.default(f
它在启动时闪烁,并立即熄灭。
我也锁定和解锁了 我添加了我的部分代码,我认为这与这里的问题有关
override func viewDidLoad() {
super.viewDidLoad()
initCamera()
}
func initCamera(){
captureSession.sessionPreset = .medium
guard let device = AVCaptureDevice.default(for: .video) else {
print("no camera")
return
}
try? device.lockForConfiguration()
device.activeVideoMaxFrameDuration = CMTimeMake(1, 30)
if device.hasTorch && device.isTorchAvailable && !device.isTorchActive{
do {
try device.setTorchModeOn(level: 1.0)
device.torchMode = .on
} catch {
print("Torch could not be used")
}
} else {
print("Torch is not available")
}
if device.isFocusModeSupported(.continuousAutoFocus){
device.focusMode = .continuousAutoFocus
}
device.unlockForConfiguration()
guard let captureInput = try? AVCaptureDeviceInput(device: device) else {return;}
if captureSession.canAddInput(captureInput) {
captureSession.addInput(captureInput)
}
let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
view.layer.addSublayer(previewLayer)
let videoOutput = AVCaptureVideoDataOutput()
let queue = DispatchQueue(label: "queue image delegate", attributes: .concurrent)
videoOutput.setSampleBufferDelegate(self, queue: queue)
if captureSession.canAddOutput(videoOutput)
{
captureSession.addOutput(videoOutput)
}
captureSession.startRunning()
}