FramePlayer Class¶
Description¶
在场景中控制 InputFramePlayer 和 VideoInputFramePlayer 的 MonoBehaviour ,在Unity环境下提供功能扩展。不需要直接使用 InputFramePlayer 或 VideoInputFramePlayer 。
它将会在 AssembleOptions.FrameSource 是 AssembleOptions.FrameSourceSelection.FramePlayer 或者编辑器上在 DiagnosticsController inspector的'Session Validation Tool'中选择了'Frame Player' DiagnosticsController 时被使用。
MonoBehaviour Messages¶
private void Awake() |
private void OnEnable() |
private void OnDisable() |
private void OnApplicationPause(bool pause) |
private void OnDestroy() |
Fields¶
FilePathType¶
- C#
public WritablePathType FilePathType
路径类型。可以在 FramePlayer.Play 之前设置。
FilePath¶
- C#
public string FilePath
文件路径。可以在 FramePlayer.Play 之前设置。
Properties¶
IsCompleted¶
- C#
public bool IsCompleted { get; }
是否已完成播放。
Length¶
- C#
public Optional<double> Length { get; }
预期的总播放时间。单位为秒。
Time¶
- C#
public double Time { get; }
已经播放的时间。
IsSeekable¶
- C#
public bool IsSeekable { get; }
是否可定位当前播放时刻。录制过程非正常中断时,可能导致缺少索引数据,而无法设定当前播放时间。
IsSpeedChangeable¶
- C#
public bool IsSpeedChangeable { get; }
是否可修改播放速度。
Speed¶
- C#
public double Speed { get; set; }
当前的播放速度。
OriginCandidate¶
- C#
public XROriginController OriginCandidate { get; set; }
ARSession.Origin 的备选,如果没设置,将会自动从场景中获取或生成。
CameraCandidate¶
- C#
public Camera CameraCandidate { get; set; }
FramePlayer.Camera 的备选,如果没设置,将会自动从场景中获取或生成。
IsHMD¶
- C#
internal protected override bool IsHMD { }
仅当创建一个新的frame source时提供。它仅会在 ARSession.Assemble 过程中被访问。
当前frame source是否是头显。如果是头显,诊断信息将显示在相机前的3D板子上。
部分frame filter在设备上运行会有不同。
Camera¶
- C#
internal protected override Camera Camera { }
仅当创建一个新的frame source时提供。它仅会在 ARSession.Assemble 过程中被访问。
在桌面设备或手机上,该相机代表现实环境中相机设备在虚拟世界中对应的 Camera ,其投影矩阵和位置都将与真实相机对应,受EasyAR控制。在头显上,该相机仅用于将一些诊断文字展示在眼前,不用于画面渲染,相机也不受EasyAR控制。
IsCameraUnderControl¶
- C#
internal protected override bool IsCameraUnderControl { }
仅当创建一个新的frame source时提供。它仅会在 ARSession.Assemble 过程中被访问。
当值为ture时,session 会更新相机的transform,且会渲染相机图像.
在创建头显扩展时,它应为false。你应该完全控制场景中的3D相机。你应该处理相机渲染,尤其是在VST模式下。
Display¶
- C#
internal protected override IDisplay Display { }
仅当创建一个新的frame source时提供。它仅会在 ARSession.Assemble 过程中被访问。
提供显示系统信息。你可以使用 Display.DefaultSystemDisplay 或 Display.DefaultHMDDisplay 来获取默认的显示信息。
IsAvailable¶
- C#
internal protected override Optional<bool> IsAvailable { }
仅当创建一个新的frame source时提供。它仅会在 ARSession.Assemble 过程中被访问。
当前frame source是否可用。
如果数值等于null, FrameSource.CheckAvailability 会被调用,数值将在 Coroutine 结束后获取。
AvailableCenterMode¶
- C#
internal protected override IReadOnlyList< ARSession.ARCenterMode > AvailableCenterMode { }
仅当创建一个新的frame source时提供。它仅会在 ARSession.Assemble 过程中被访问。
所有可以使用的中心模式。
Methods¶
Play¶
- C#
public bool Play()
播放eif文件。
Stop¶
- C#
public void Stop()
停止播放eif文件。
Seek¶
- C#
public bool Seek(double time)
设定当前播放时刻。单位为秒。如果缺少索引数据,则返回false。
OnSessionStart¶
- C#
private override void OnSessionStart( ARSession session)
仅当创建一个新的frame source时提供。它仅会在 ARSession.StartSession 过程中被访问。
处理session启动,如果这个frame source已经组装进 ARSession.Assembly 。这个方法设计上是用来做延迟初始化的,你可以在这个方法中做AR独有的初始化工作。
OnSessionStop¶
- C#
private override void OnSessionStop()
仅当创建一个新的frame source时提供。它会在 ARSession.StopSession 或其它session停止/损坏过程中被访问。
处理session停止,如果这个frame source已经组装进 ARSession.Assembly 。你可以使用这个方法销毁 ARSession.StartSession 以及session运行中创建的资源并恢复内部状态。在session销毁之前这个方法会被保证调用。如果frame source在sessino之前销毁,它将不会被调用,且session将损坏。
CheckAvailability¶
- C#
private virtual System.Collections.IEnumerator CheckAvailability()
仅当创建一个新的frame source时提供。它仅会在 ARSession.Assemble 过程中被访问。
FrameSource.IsAvailable 等于null时用于检查frame source是否可用的 Coroutine 。