Есть ли способ оставить фонарик включенным, пока AVCaptureSession
работает в режиме видео на iPhone X?
У меня есть код Swift 4, который включает фонарик и начинает получать видеокадры с камеры,Я знаю, что это работает для iPhone 4,5 и 6. Но с iPhone X фонарик не включается, когда я начинаю сеанс захвата.
session = AVCaptureSession()
if self.session.canSetSessionPreset(AVCaptureSession.Preset.inputPriority) {
self.session.sessionPreset = .inputPriority
}
//This is the wide angle camera device
camera = AVCaptureDevice.default(for: AVMediaType.video)
//I could also use telephoto, same problem
//camera = AVCaptureDevice.default(.builtInTelephotoCamera, for: AVMediaType.video, position: .unspecified)
if camera == nil {
return
}
if self.camera.isTorchModeSupported(.on) {
camera.activeFormat = selectBestFormat(camera.formats)
camera.torchMode = .on
try? camera.setTorchModeOn(level: 1.0)
camera.unlockForConfiguration()
}
let cameraInput = try! AVCaptureDeviceInput(device: self.camera)
let videoOutput = AVCaptureVideoDataOutput()
let captureQueue = DispatchQueue(label: "captureQueue")
videoOutput.setSampleBufferDelegate(self, queue: captureQueue)
videoOutput.videoSettings = [
(kCVPixelBufferPixelFormatTypeKey as AnyObject) as! AnyHashable as! String : Int(kCVPixelFormatType_32BGRA)
]
self.session.addInput(cameraInput)
self.session.addOutput(videoOutput)
//If I don't start the session the torch is on
self.session.startRunning()
Этот вопрос имеет тот жепроблема.Проблема в моем случае заключается в том, что фонарик выключается, как только начинается AVCaptureSession
.
Я попытался включить фонарик после начала сеанса, я попробовал несколько различных конфигураций камеры.Я также попытался использовать два разных объектива камеры.Для всех этих конфигураций индикатор гаснет.
Если решения не найдено, пожалуйста, дайте мне знать, если для этого есть ошибка.Или я войду один.