![](/img/trans.png)
[英]ARKit - AR using ultra wide camera 0.5 on iPhone 13 Pro
[英]Ultra wide camera issue on iPhone 11 Pro
我正在構建一個自定義相機,我希望允許用戶在超廣角相機、廣角相機和長焦相機之間切換,就像默認相機應用程序一樣,但我一直面臨一些奇怪的問題,我將嘗試展示以下:
第一張圖片是使用 iOS 默認相機應用程序拍攝的,第二張是使用我的自定義相機應用程序拍攝的。 在我看來,當我從廣角相機切換到超廣角相機時,我沒有正確安裝AVCaptureVideoPreviewLayer
。 問題是:我不確定我應該怎么做,所以你們能給我一個關於如何解決它的線索嗎?
我還有一個視頻,它顯示了我的自定義應用程序中相機之間的轉換,但我無法在此處上傳。
這是我在相機之間切換的代碼部分:
if let device = AVCaptureDevice.default(.builtInUltraWideCamera, for: .video, position: .back) {
currentCameraDevice = device
changeCameraDevice()
}
}
private func changeCameraDevice() {
guard captureSession.isRunning else { return }
captureSession.beginConfiguration()
guard let view = (view as? UIViewController)?.view else { return }
guard let device = currentCameraDevice else { return }
guard let input = try? AVCaptureDeviceInput(device: device) else { return }
captureSession.inputs.forEach { captureSession.removeInput($0) }
captureSession.addInput(input)
captureSession.commitConfiguration()
captureSession.startRunning()
viewDidLayoutSubviews(view)
}
這是我將預覽層插入視圖層堆棧的位置:
view.layer.insertSublayer(layer, at: index)
其中layer
是AVCaptureVideoPreviewLayer
我已經找到了這個問題,所以無論誰在未來偶然發現這個問題。 我正在設置videoGravity =.resizeAspectFill
,但是當使用超寬相機時它不能正常工作。 為了修復它,您所要做的就是刪除此行或設置videoGravity =.resizeAspect
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.