5

我试图在 iPhoneX 上同时运行 ARWorldTracking Session 和 ARFaceTracking Session,但是第一个运行的会话在后面的会话开始运行后停止了。

是不可能实现的吗?这是我的 ViewController.swift 代码。

import UIKit
import ARKit

class ViewController: UIViewController, ARSCNViewDelegate, 
ARSessionDelegate {
    @IBOutlet weak var frontView: ARSCNView!
    @IBOutlet weak var backView: ARSCNView!
    override func viewDidLoad() {
       super.viewDidLoad()
       startTracking()
    }

   func startTracking() {
       let backConfiguration = ARWorldTrackingConfiguration()
       backView.session.run(backConfiguration)

       let frontConfiguration = ARFaceTrackingConfiguration()
       frontConfiguration.isLightEstimationEnabled = true      
       frontView.session.run(frontConfiguration)
  }
}
4

2 回答 2

2

没有。

ARKit 依赖于 AVCapture 系统,它不支持一次使用多个捕获设备(相机)。如果您使用前置摄像头启动捕获会话,而另一个会话正在使用后置摄像头,则现有会话将停止。

于 2017-12-08T05:55:16.967 回答
-1

ARSession是一个单例,因此更改配置将更改共享会话的状态。来自文档:

ARSession 管理增强现实体验所需的设备摄像头和运动处理的共享对象。

于 2017-12-06T08:54:15.850 回答