2017-12-06 5 views
1

私は同時にiPhoneW、 でARWorldTracking SessionとARFaceTracking Sessionを実行しようとしていますが、最初の実行セッションは、後のセッションが実行を開始した後に停止しました。iPhoneで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

いいえ。

ARKitはAVキャプチャシステムを利用しており、一度に複数のキャプチャデバイス(カメラ)を使用することはできません。別のセッションでバックカメラを使用中にフロントカメラを使用してキャプチャセッションを開始すると、既存のセッションは停止します。

+0

私はこの質問を投稿する前にAVCaptureSessionとARSessionを同時に実行しようとしましたが、xcodeはセッションエラーを示唆していました。 それはあなたが意味することです! – Scoff

-1

ARSessionシングルトンなので、設定を変更すると、共有セッションの状態を変更する予定です。ドキュメントから:

ARSession 素子カメラと拡張現実の経験のために必要な運動 処理を管理し、共有オブジェクト。

+0

お返事ありがとうございます! – Scoff

+0

オブジェクトは、シングルトンでなくても、ドメイン内の複数の使用サイトで共有できます。 'ARSession'には別個のインスタンスを返すイニシャライザがあるので、シングルトンではありません。 – rickster

関連する問題