Table of Contents

Class FramePlayer

命名空間
easyar
組件
EasyAR.Sense.dll

在場景中控制easyar.InputFramePlayereasyar.VideoInputFramePlayerMonoBehaviour,在Unity環境下提供功能擴展。

它將會在FrameSourceFramePlayer或者編輯器上在DiagnosticsController inspector的'Session Validation Tool'中選擇了'Frame Player'DiagnosticsController時被使用。

public class FramePlayer : FrameSource
繼承
FramePlayer
繼承成員

欄位

FilePath

檔案路徑。可以在Play()之前設定。

public string FilePath

FilePathType

路徑類型。可以在Play()之前設定。

public WritablePathType FilePathType

屬性

AvailableCenterMode

僅當建立一個新的畫面來源時提供。它僅會在Assemble()過程中被存取。

所有可以使用的中心模式。

protected override IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }

Camera

僅當建立一個新的畫面來源時提供。它僅會在Assemble()過程中被存取。

在桌面裝置或手機上,該相機代表現實環境中相機裝置在虛擬世界中對應的Camera,其投影矩陣和位置都將與真實相機對應,由EasyAR控制。在頭戴式顯示器上,該相機僅用於將一些診斷文字展示在眼前,不用於畫面渲染,相機也不由EasyAR控制。

protected override Camera Camera { get; }

CameraCandidate

Camera的替代項目,僅當未使用Unity XR Origin時有效,如未設定會使用Camera.main。

public Camera CameraCandidate { get; set; }

CameraFrameStarted

僅當建立一個新的畫面來源時提供。它會在ARSession的整個生命週期內被存取。

相機畫面是否開始輸入。

protected override bool CameraFrameStarted { get; }

DeviceCameras

僅當建立一個新的畫面來源時提供。它會在CameraFrameStarted為true時被存取。

提供相機畫面數據的裝置相機。如果相機畫面數據由多個相機提供,清單中需要包含所有相機。

確保在CameraFrameStarted為true時數值正確。

protected override List<FrameSourceCamera> DeviceCameras { get; }

Display

僅當建立一個新的畫面來源時提供。它僅會在Assemble()過程中被存取。

提供顯示系統資訊。你可以使用DefaultSystemDisplayDefaultHMDDisplay來取得預設的顯示資訊。

protected override IDisplay Display { get; }

IsAvailable

僅當建立一個新的畫面來源時提供。它僅會在Assemble()過程中被存取。

當前畫面來源是否可用。

如果數值等於null,CheckAvailability()會被呼叫,數值將在Coroutine結束後取得。

protected override Optional<bool> IsAvailable { get; }

IsCameraUnderControl

僅當建立一個新的畫面來源時提供。它僅會在Assemble()過程中被存取。

當值為ture時,session 會更新相機的transform,且會渲染相機影像.

在建立頭戴式顯示器擴充時,它應為false。你應該完全控制場景中的3D相機。你應該處理相機渲染,尤其是在VST模式下。

protected override bool IsCameraUnderControl { get; }

IsCompleted

是否已完成播放。

public bool IsCompleted { get; }

IsHMD

僅當建立一個新的畫面來源時提供。它僅會在Assemble()過程中被存取。

當前畫面來源是否是頭戴式顯示器。如果是頭戴式顯示器,診斷資訊將顯示在相機前的3D板子上。

部分畫面篩選器在裝置上運行會有不同。

protected override bool IsHMD { get; }

IsSeekable

是否可定位當前播放時刻。錄製過程非正常中斷時,可能導致缺少索引數據,而無法設定當前播放時間。

public bool IsSeekable { get; }

IsSpeedChangeable

是否可修改播放速度。

public bool IsSpeedChangeable { get; }

IsStarted

是否已啟動播放。

public bool IsStarted { get; }

Length

預期的總播放時間。單位為秒。

public Optional<double> Length { get; }

Speed

當前的播放速度。

public double Speed { get; set; }

Time

已經播放的時間。

public double Time { get; }

方法

OnSessionStart(ARSession)

僅當建立一個新的畫面來源時提供。它僅會在StartSession()過程中被存取。

處理session啟動,如果這個畫面來源已經組裝進Assembly。這個方法設計上是用來做延遲初始化的,你可以在這個方法中做AR獨有的初始化工作。

protected override void OnSessionStart(ARSession session)

參數

session

OnSessionStop()

僅當建立一個新的畫面來源時提供。它會在StopSession(bool)或其它session停止/損壞過程中被存取。

處理session停止,如果這個畫面來源已經組裝進Assembly。你可以使用這個方法銷毀StartSession()以及session運行中建立的資源並恢復內部狀態。在session銷毀之前這個方法會被保證呼叫。如果畫面來源在sessino之前銷毀,它將不會被呼叫,且session將損壞。

protected override void OnSessionStop()

Play()

播放eif檔案。如果未手動呼叫Play()Stop()ARSession啟動後會自動Play()

在session啟動後才能使用。

public bool Play()

Seek(double)

設定當前播放時刻。單位為秒。如果缺少索引數據,則返回false。

public bool Seek(double time)

參數

time

Stop()

停止播放eif檔案。

public void Stop()