Class FramePlayer
- Namespace
- easyar
- Assembly
- EasyAR.Sense.dll
A MonoBehaviour that controls easyar.InputFramePlayer and easyar.VideoInputFramePlayer in the scene and provides functional extensions in the Unity environment.
It is used when FrameSource is FramePlayer, or when "Frame Player" is selected in "Session Validation Tool" of the DiagnosticsController inspector in the editor.
public class FramePlayer : FrameSource
- Inheritance
-
FramePlayer
- Inherited Members
Fields
FilePath
File path. It can be set before Play().
public string FilePath
FilePathType
Path type. It can be set before Play().
public WritablePathType FilePathType
Properties
AvailableCenterMode
Provided only when creating a new frame source. It is accessed only during Assemble().
All center modes that can be used.
protected override IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }
Camera
Provided only when creating a new frame source. It is accessed only during Assemble().
On desktop devices or phones, this camera represents the Camera in the virtual world corresponding to the camera device in the real environment. Its projection matrix and position correspond to the real camera and are controlled by EasyAR. On headsets, this camera is used only to display diagnostic text in front of the eyes; it is not used for image rendering, and the camera is not controlled by EasyAR.
protected override Camera Camera { get; }
CameraCandidate
Alternative to Camera. Effective only when Unity XR Origin is not used. If not set, Camera.main will be used.
public Camera CameraCandidate { get; set; }
CameraFrameStarted
Provided only when creating a new frame source. It is accessed throughout the lifecycle of ARSession.
Whether camera frame input has started.
protected override bool CameraFrameStarted { get; }
DeviceCameras
Provided only when creating a new frame source. It is accessed when CameraFrameStarted is true.
Device cameras that provide camera frame data. If camera frame data is provided by multiple cameras, the list must contain all cameras.
Ensure that the value is correct when CameraFrameStarted is true.
protected override List<FrameSourceCamera> DeviceCameras { get; }
Display
Provided only when creating a new frame source. It is accessed only during Assemble().
Provides display system information. You can use DefaultSystemDisplay or DefaultHMDDisplay to get default display information.
protected override IDisplay Display { get; }
IsAvailable
Provided only when creating a new frame source. It is accessed only during Assemble().
Whether the current frame source is available.
If the value is null, CheckAvailability() will be called, and the value will be obtained after Coroutine ends.
protected override Optional<bool> IsAvailable { get; }
IsCameraUnderControl
Provided only when creating a new frame source. It is accessed only during Assemble().
When the value is true, session updates the camera transform and renders the camera image.
When creating a headset extension, it should be false. You should fully control the 3D camera in the scene. You should handle camera rendering, especially in VST mode.
protected override bool IsCameraUnderControl { get; }
IsCompleted
Whether playback has finished.
public bool IsCompleted { get; }
IsHMD
Provided only when creating a new frame source. It is accessed only during Assemble().
Whether the current frame source is a headset. If it is a headset, diagnostic information will be displayed on a 3D board in front of the camera.
Some frame filters behave differently when running on device.
protected override bool IsHMD { get; }
IsSeekable
Whether the current playback time can be located. If the recording process was interrupted abnormally, index data may be missing, making it impossible to set the current playback time.
public bool IsSeekable { get; }
IsSpeedChangeable
Whether playback speed can be modified.
public bool IsSpeedChangeable { get; }
IsStarted
Whether playback has started.
public bool IsStarted { get; }
Length
Expected total playback time. The unit is seconds.
public Optional<double> Length { get; }
Speed
Current playback speed.
public double Speed { get; set; }
Time
Time already played.
public double Time { get; }
enabled
Plays/pauses the eif file while ARSession is running. After session starts, playback starts only when MonoBehaviour.enabled is true.
public bool enabled { get; set; }
Methods
OnSessionStart(ARSession)
Provided only when creating a new frame source. It is accessed only during StartSession().
Handles session startup if this frame source has been assembled into Assembly. This method is designed for lazy initialization; you can perform AR-specific initialization work in this method.
protected override void OnSessionStart(ARSession session)
Parameters
session
OnSessionStop()
Provided only when creating a new frame source. It is accessed during StopSession(bool) or other session stop/damage processes.
Handles session stop if this frame source has been assembled into Assembly. You can use this method to destroy resources created by StartSession() and during session running, and restore internal state. This method is guaranteed to be called before session destruction. If the frame source is destroyed before the session, it will not be called and the session will be damaged.
protected override void OnSessionStop()
Play()
Plays an eif file. If Play() and Stop() are not manually called, ARSession will automatically call Play() after startup.
It can be used only after session starts.
public bool Play()
Seek(double)
Sets the current playback time. The unit is seconds. If index data is missing, returns false.
public bool Seek(double time)
Parameters
time
Stop()
Stops playing the eif file.
public void Stop()