【问题标题】:How to turn on/offf camera flash light with ARKit?如何使用 ARKit 打开/关闭相机闪光灯?
【发布时间】:2022-03-01 19:28:39
【问题描述】:

我正在使用 ARSCNView 来显示 AR 体验,这些体验通过 3D SceneKit 内容来增强相机视图。

ARSession 管理设备摄像头的共享对象,但在ARSession 中我找不到任何闪光灯选项。

有没有办法打开/关闭相机闪光灯?

如何使用ARKit管理摄像头?

如何改变前后摄像头位置?

【问题讨论】:

    标签: ios swift arkit


    【解决方案1】:
    func toggleTorch(on: Bool) {
            guard let device = AVCaptureDevice.default(for: AVMediaType.video) 
            else {return}
    
            if device.hasTorch {
                do {
                    try device.lockForConfiguration()
    
                    if on == true {
                        device.torchMode = .on // set on
                    } else {
                        device.torchMode = .off // set off
                    }
    
                    device.unlockForConfiguration()
                } catch {
                    print("Torch could not be used")
                }
            } else {
                print("Torch is not available")
            }
        }
    

    称之为

    toggleTorch(on: true) 的toggleTorch(on: false)

    参考:使用 Swift 进行黑客攻击

    【讨论】:

    • 你能写更多关于会发生什么和你预期会发生什么的事情吗?
    • 您能解释一下如何在ARKit中更改相机位置吗?
    • on 指的是什么?
    【解决方案2】:

    另一个答案包括手电筒,所以你的相机位置问题......

    无法为 ARKit 选择相机;也就是说,ARKit 会为你选择相机。

    • 当您使用世界追踪时,ARKit 总是选择后置广角摄像头(而不是配备如此配备的长焦或双摄像头)。
    • 当您使用面部跟踪(仅限 iPhone X)时,ARKit 始终使用前置 TrueDepth 摄像头。

    【讨论】:

      【解决方案3】:

      如果您的手电筒在您打开后立即被操作系统关闭,您需要做的是;不要在启动 ARKit 会话后立即打开手电筒。你应该在一段时间后打开手电筒。我在 viewDidLoad() 中启动 AR 会话并尝试在 viewDidAppear() 中打开手电筒,但操作系统随后立即关闭它。所以,我能够让它像这样工作;

      override func viewDidAppear(_ animated: Bool) {  
               super.viewDidAppear(animated)  
               DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { [weak self] in            
                    self?.toggleFlash() 
               }  
      }  
      

      【讨论】:

        猜你喜欢
        • 2011-08-18
        • 1970-01-01
        • 1970-01-01
        • 2013-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多