Можно ли одновременно запускать ARWorldTracking Session и ARFaceTracking Session на iPhoneX?

Я пытаюсь запустить ARWorldTracking Session и ARFaceTracking Session одновременно на iPhoneX, но первый запущенный сеанс остановился после начала последующего сеанса.

Это невозможно реализовать? Это мой код 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)
  }
}

2 ответа

Решение

Нету.

ARKit опирается на систему AVCapture, которая не поддерживает одновременное использование более одного устройства захвата (камеры). Если вы начинаете сеанс захвата с использованием передней камеры, когда другой сеанс использует заднюю камеру, существующий сеанс останавливается.

ARSession является одноэлементным, поэтому изменение конфигурации приведет к изменению состояния общего сеанса. из документов:

ARSession Общий объект, который управляет камерой устройства и обработкой движения, необходимой для восприятия дополненной реальности.

Другие вопросы по тегам