我正在尝试在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)
}
}
答案 0 :(得分:1)
不。
ARKit依赖于AVCapture系统,并且不支持一次使用多个捕获设备(摄像头)。如果使用前置摄像头启动捕获会话,而另一个会话正在使用后置摄像头,则现有会话将停止。
答案 1 :(得分:-1)
ARSession是一个单例,因此更改配置将改变共享会话的状态。来自文档:
ARSession 管理设备摄像头和动作的共享对象 增强现实体验所需的处理。