Swift 可以同时运行两个独立的分区吗?
由于ARKit3,可以运行同时支持前后摄像头的ARSession() 例如,这将为支持Worldtracking的前摄像头创建一个ArcConfigurationSwift 可以同时运行两个独立的分区吗?,swift,arkit,arscnview,Swift,Arkit,Arscnview,由于ARKit3,可以运行同时支持前后摄像头的ARSession() 例如,这将为支持Worldtracking的前摄像头创建一个ArcConfiguration // session for the front camera let configuration = ARFaceTrackingConfiguration() configuration.isWorldTrackingEnabled sceneView.session.run(configurati
// session for the front camera
let configuration = ARFaceTrackingConfiguration()
configuration.isWorldTrackingEnabled
sceneView.session.run(configuration)
此示例为启用面部跟踪的后摄像头会话创建配置:
// session for the back camera
let configuration = ARWorldTrackingConfiguration()
configuration.userFaceTrackingEnabled = true
sceneView.session.run(configuration)
我想创建两个同时运行的独立ArcConfiguration和ArcSessions。像这样:
到目前为止,我尝试了以下代码:
import UIKit
import SceneKit
import ARKit
class ViewController: UIViewController, ARSCNViewDelegate {
// back camera view
@IBOutlet var backView: ARSCNView!
// front camera view
@IBOutlet weak var frontView: ARSCNView!
override func viewDidLoad() {
super.viewDidLoad()
// Set the view's delegate
sceneView.delegate = self
frontView.delegate = self
// Create a new scene for back camera
let scene = SCNScene(named: "art.scnassets/ship.scn")!
backView.scene = scene
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// session for the back camera
let configuration = ARWorldTrackingConfiguration()
configuration.userFaceTrackingEnabled = true
backView.session.run(configuration)
// session for the front camera
guard ARFaceTrackingConfiguration.isSupported else { return }
let configurationFront = ARFaceTrackingConfiguration()
configurationFront.isLightEstimationEnabled = true
frontView.session.run(configurationFront, options: [])
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// Pause the view's session
sceneView.session.pause()
}
func session(_ session: ARSession, didFailWithError error: Error) {
// Present an error message to the user
}
func sessionWasInterrupted(_ session: ARSession) {
// Inform the user that the session has been interrupted, for example, by presenting an overlay
}
func sessionInterruptionEnded(_ session: ARSession) {
// Reset tracking and/or remove existing anchors if consistent tracking is required
}
}
当前摄像头正常工作时,后摄像头停止视频馈送。有解决这个问题的机会吗
在另一台摄像机上运行一个会话和一个低级视频捕获会话也是一个解决方案,但我遇到了同样的问题。也许这会有所帮助:是的,谢谢。这基本上是同一个问题。我会看一看的。所以我看了一下。当您只有一个活动摄影机时,这是一个解决方案。我需要两个摄像头都处于活动状态。