Class FramePlayer
- 命名空间
- easyar
- 程序集
- EasyAR.Sense.dll
在场景中控制easyar.InputFramePlayer和easyar.VideoInputFramePlayer的MonoBehaviour,在Unity环境下提供功能扩展。
它将会在FrameSource是FramePlayer或者编辑器上在DiagnosticsController inspector的'Session Validation Tool'中选择了'Frame Player'DiagnosticsController时被使用。
public class FramePlayer : FrameSource
- 继承
-
FramePlayer
- 继承成员
字段
FilePath
文件路径。可以在Play()之前设置。
public string FilePath
FilePathType
路径类型。可以在Play()之前设置。
public WritablePathType FilePathType
属性
AvailableCenterMode
仅当创建一个新的frame source时提供。它仅会在Assemble()过程中被访问。
所有可以使用的中心模式。
protected override IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }
Camera
仅当创建一个新的frame source时提供。它仅会在Assemble()过程中被访问。
在桌面设备或手机上,该相机代表现实环境中相机设备在虚拟世界中对应的Camera,其投影矩阵和位置都将与真实相机对应,受EasyAR控制。在头显上,该相机仅用于将一些诊断文字展示在眼前,不用于画面渲染,相机也不受EasyAR控制。
protected override Camera Camera { get; }
CameraCandidate
Camera的备选,仅当未使用Unity XR Origin时有效,如未设置会使用Camera.main。
public Camera CameraCandidate { get; set; }
CameraFrameStarted
仅当创建一个新的frame source时提供。它会在ARSession的整个生命周期内被访问。
相机帧是否开始输入。
protected override bool CameraFrameStarted { get; }
DeviceCameras
仅当创建一个新的frame source时提供。它会在CameraFrameStarted为true时被访问。
提供相机帧数据的设备相机。如果相机帧数据由多个相机提供,列表中需要包含所有相机。
确保在CameraFrameStarted为true时数值正确。
protected override List<FrameSourceCamera> DeviceCameras { get; }
Display
仅当创建一个新的frame source时提供。它仅会在Assemble()过程中被访问。
提供显示系统信息。你可以使用DefaultSystemDisplay或DefaultHMDDisplay来获取默认的显示信息。
protected override IDisplay Display { get; }
IsAvailable
仅当创建一个新的frame source时提供。它仅会在Assemble()过程中被访问。
当前frame source是否可用。
如果数值等于null,CheckAvailability()会被调用,数值将在Coroutine结束后获取。
protected override Optional<bool> IsAvailable { get; }
IsCameraUnderControl
仅当创建一个新的frame source时提供。它仅会在Assemble()过程中被访问。
当值为ture时,session 会更新相机的transform,且会渲染相机图像.
在创建头显扩展时,它应为false。你应该完全控制场景中的3D相机。你应该处理相机渲染,尤其是在VST模式下。
protected override bool IsCameraUnderControl { get; }
IsCompleted
是否已完成播放。
public bool IsCompleted { get; }
IsHMD
仅当创建一个新的frame source时提供。它仅会在Assemble()过程中被访问。
当前frame source是否是头显。如果是头显,诊断信息将显示在相机前的3D板子上。
部分frame filter在设备上运行会有不同。
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)
仅当创建一个新的frame source时提供。它仅会在StartSession()过程中被访问。
处理session启动,如果这个frame source已经组装进Assembly。这个方法设计上是用来做延迟初始化的,你可以在这个方法中做AR独有的初始化工作。
protected override void OnSessionStart(ARSession session)
参数
session
OnSessionStop()
仅当创建一个新的frame source时提供。它会在StopSession(bool)或其它session停止/损坏过程中被访问。
处理session停止,如果这个frame source已经组装进Assembly。你可以使用这个方法销毁StartSession()以及session运行中创建的资源并恢复内部状态。在session销毁之前这个方法会被保证调用。如果frame source在sessino之前销毁,它将不会被调用,且session将损坏。
protected override void OnSessionStop()
Play()
public bool Play()
Seek(double)
设定当前播放时刻。单位为秒。如果缺少索引数据,则返回false。
public bool Seek(double time)
参数
time
Stop()
停止播放eif文件。
public void Stop()