在 iOS16 上,我尝试使用
DataScannerViewController
(用于条形码读取)用 Vision 替换旧方法,但是当我启用手电筒时,DataScannerViewController
冻结了...
启用/禁用火炬的代码:
guard let device = AVCaptureDevice.default(for: .video), device.hasTorch else { return }
do {
try device.lockForConfiguration()
device.torchMode = device.isTorchActive ? .off : .on
device.unlockForConfiguration()
} catch {
print(error)
}
(此代码与 Vision 配合良好)
非常感谢
我按照此site上的示例配置完整的 AVCaptureDevice.DiscoverySession,然后使用它来激活手电筒。到目前为止,问题似乎已经解决了。
let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInTripleCamera, .builtInDualWideCamera, .builtInUltraWideCamera, .builtInWideAngleCamera, .builtInTrueDepthCamera], mediaType: AVMediaType.video, position: cameraPosition)