【Vuforia 瑣碎知識 3】自動調焦、閃光燈、識別控制、前置相機以及禁用Vuforia(開機不自動打開攝像頭)

代碼就這幾句,但是如果Vuforia沒有初始化完成就調用會崩潰。

// 設置攝像頭自動調焦 
var isSuccessful = Vuforia.CameraDevice.Instance.SetFocusMode(Vuforia.CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);

// 打開閃光燈 true
Vuforia.CameraDevice.Instance.SetFlashTorchMode(true);
// 關閉閃光燈 false
Vuforia.CameraDevice.Instance.SetFlashTorchMode(false);

// 相機停止影像
Vuforia.CameraDevice.Instance.Stop();
// 相機開始攝取影像
Vuforia.CameraDevice.Instance.Start();

// 開始跟蹤目標(開始識別)
Vuforia.TrackerManager.Instance.GetTracker<Vuforia.ObjectTracker>().Start();
// 停止跟蹤目標(停止識別)
Vuforia.TrackerManager.Instance.GetTracker<Vuforia.ObjectTracker>().Stop();

// 啓動Vuforia
GameObject.Find("ARCamera").GetComponent<Vuforia.VuforiaBehaviour>().enabled = true
// 關閉Vuforia
GameObject.Find("ARCamera").GetComponent<Vuforia.VuforiaBehaviour>().enabled = false

// 打開前置攝像頭(Vuforia在未來版本中將會棄用這種方法)
Vuforia.CameraDevice.Instance.Init(Vuforia.CameraDevice.CameraDirection.CAMERA_FRONT);
Vuforia.CameraDevice.Instance.Start();
// 打開後置攝像頭
Vuforia.CameraDevice.Instance.Init(Vuforia.CameraDevice.CameraDirection.CAMERA_BACK);
Vuforia.CameraDevice.Instance.Start();
// 打開默認的攝像頭
Vuforia.CameraDevice.Instance.Init(Vuforia.CameraDevice.CameraDirection.CAMERA_DEFAULT);
Vuforia.CameraDevice.Instance.Start();

爲了確保代碼不會崩潰,可以在調用上面的代碼前檢查是否可用:

// 操作相機前檢查相機是否在活動(相機Stop後或Vuforia未初始化完成,該函數返回false)
Vuforia.CameraDevice.Instance.IsActive()

// 操作跟蹤識別前檢查Vuforia是否完成了初始化
Vuforia.VuforiaManager.Instance.Initialized

這裏提供一個小demo,如下是在手機上運行的結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章