ArSceneView

公開類別 ArSceneView

整合 ARCore 並轉譯情境的 SurfaceView。

繼承的常數

沿用欄位

公用建構函式

ArSceneView (背景資訊結構定義)
建構 ArSceneView 物件,並將其繫結至 Android 結構定義。
ArSceneView (結構定義AttributeSet 屬性)
建構 ArSceneView 物件,並將其繫結至 Android 結構定義。

公用方法

頁框
getArFrame()
傳回最新的 ARCore Frame (如果有的話)。
整數
getCameraStreamRenderPriority()
取得控制相機串流轉譯順序的轉譯優先順序。
PlaneRenderer
getPlaneRenderer()
傳回 PlaneRenderer,用於控制層視覺化呈現。
工作階段
getSession()
傳回此檢視畫面使用的 ARCore 工作階段。
布林
isEnvironmentalHdrLightingAvailable()
如果使用 Config.LightEstimationMode.ENVIRONMENTAL_HDR 設定 ARCore 相機,則傳回「是」。
布林
isLightDirectionUpdateEnabled()
根據環境 HDR 亮度預估值,檢查每個影格的日光是否正在更新。
布林
void
pause()
暫停轉譯執行緒和 ARCore 工作階段。
CompletableFuture<Void>
pauseAsync (執行者執行程式)
用來暫停轉譯執行緒和 ARCore 工作階段的非封鎖呼叫。
void
resume()
繼續算繪執行緒和 ARCore 工作階段。
CompletableFuture<Void>
resumeAsync(執行者執行程式)
在非背景呼叫無法繼續算繪執行緒和 ARCore 工作階段

這個變數必須從 onContinue() 呼叫。

void
setCameraStreamRenderPriority(整數優先順序)
設定轉譯優先順序以控制相機串流的顯示順序。
void
setLightDirectionUpdateEnabled(布林值為 LightDirectionUpdateEnabled)
設定是否要根據各個畫面更新各個環境 HDR 照明產生的日光方向。
void
setLightEstimationEnabled (布林值啟用)
根據相機動態饋給啟用光源預估功能。
void
setupSession(工作階段工作階段)
使用 AR 工作階段設定檢視區塊。

沿用的方法

公用建構函式

public ArSceneView (結構定義結構定義)

建構 ArSceneView 物件,並將其繫結至 Android Context。

為了正確顯示算繪,必須呼叫 setupSession(Session)

參數
context 要使用的 Android 結構定義

public ArSceneView (結構定義結構定義、AttributeSet Attrs)

建構 ArSceneView 物件,並將其繫結至 Android Context。

為了正確顯示算繪,必須呼叫 setupSession(Session)

參數
context 要使用的 Android 結構定義
attrs 與 Android 屬性集
另請參閱

公用方法

公開頁框 getArFrame ()

傳回最新的 ARCore Frame (如果有的話)。該頁框會在每個繪圖頁框的開頭更新。此方法的呼叫端不應保留傳回值的參照,因為對從下一個畫面開始的 ARCore 影格而言無效。

public int getCameraStreamRenderPriority ()

取得控制相機串流轉譯順序的轉譯優先順序。系統會介於 0 (先顯示

預設值為 7,可強制相機串流算繪。這個方法最適合用於效能,避免過度繪製。不過,使用材質做為遮蔽物 (例如擴增臉孔範例) 時,應進行變更。否則,攝影機會遮蔽相機串流,並呈現黑色畫面。

公開 PlaneRenderer getPlaneRenderer ()

傳回 PlaneRenderer,用於控制層視覺化呈現。

公開 工作階段 getSession ()

傳回此檢視畫面使用的 ARCore 工作階段。

public 布林值 isEnvironmentalHdrLightingAvailable ()

如果使用 Config.LightEstimationMode.ENVIRONMENTAL_HDR 設定 ARCore 相機,則傳回「是」。啟用環境 HDR 亮度模式後,系統會將預估光源套用至「場景」場景。

傳回
  • 如果在 Sceneform 中啟用 HDR 光照功能,則為 True,因為已啟用 ARCore HDR 亮度預估值。

public 布林值 isLightDirectionUpdateEnabled ()

根據環境 HDR 亮度預估值,檢查每個影格的日光是否正在更新。

傳回
  • 如果日照方向會隨著每個畫面更新,則為 true。

公用布林值 isLightEstimationEnabled ()

傳回
  • 如果已啟用光估,則傳回「是」。

public pause ()

暫停轉譯執行緒和 ARCore 工作階段。

您必須從 onPause() 呼叫此方法。

public CompletableFuture<Void> pauseAsync (執行者執行工具)

非封鎖呼叫可暫停轉譯執行緒和 ARCore 工作階段。

應在 onPause() 中呼叫。

如果在執行另一項暫停或繼續作業時呼叫 pauseAsync,則系統會將暫停功能排入佇列,並在目前作業完成後發生。

參數
執行者
傳回
  • 已完成暫停主執行緒中的 CompletableFuture 已完成。如果無法完成履歷,未來將繼續完成例外狀況。

public resume ()

繼續算繪執行緒和 ARCore 工作階段。

這個變數必須從 onContinue() 呼叫。

擲回
相機例外狀況 無法開啟攝影機

public CompletableFuture<Void> resumeAsync (Executor 執行工具)

在非背景呼叫無法繼續算繪執行緒和 ARCore 工作階段

這個呼叫必須從 onContinue() 呼叫。

如果在執行其他暫停或繼續作業時呼叫,系統會繼續執行佇列,並在目前作業完成後再執行這項作業。

參數
執行者
傳回
  • 繼續作業完成後,完成主要執行緒的 CompletableFuture。如果系統無法繼續重新啟用,未來將完成例外狀況。

public setCameraStreamRenderPriority (優先順序)

設定轉譯優先順序以控制相機串流的顯示順序。系統會介於 0 (先顯示

預設值為 7,可強制相機串流算繪。這個方法最適合用於效能,避免過度繪製。不過,使用材質做為遮蔽物 (例如擴增臉孔範例) 時,應進行變更。否則,攝影機會遮蔽相機串流,並呈現黑色畫面。

參數
優先順序

public setLightDirectionUpdateEnabled (布林值為 LightDirectionUpdateEnabled)

設定是否要根據各個畫面更新各個環境 HDR 照明產生的日光方向。如果設為 false,光源方向只會更新一次,而且不會再變更。

這項功能可用於關閉擾人或不必要的陰影方向更新。

預設狀態為 true,每個影格都會更新日光方向。

參數
isLightDirectionUpdateEnabled

public setLightEstimationEnabled (布林值啟用)

根據相機動態饋給啟用光源預估功能。太陽度的間接光源的顏色和強度將由 ARCore' 的光量估計值調整。場景中的物體會受到影響。

參數
啟用 將這個值設為 true 即可啟用光源預估值,設為 false 表示使用預設的估計值,像素像素值為 1.0,而色彩校正值為白色 (1.0、1.0、1.0)。

public setupSession (Session 工作階段)

使用 AR 工作階段設定檢視區塊。您必須呼叫這個方法一次,才能提供 ARCore 工作階段。需要工作階段才能顯示。

這個工作階段應使用 LATEST_CAMERA_IMAGE 的更新模式進行設定。 如果沒有這項設定,ARAR 工作階段更新作業可能會封鎖 UI 執行緒,進而導致 UI 體驗不佳。

參數
工作階段 用於這個檢視畫面的 ARCore 工作階段