CameraDeviceFrameSource Class

Description

MonoBehaviour which controls CameraDevice in the scene, providing a few extensions in the Unity environment.

This frame source is not a motion tracking device, and will not output motion data in a ARSession .


Enums

public enum CameraDeviceFrameSource.CameraDeviceOpenMethod

Open method of CameraDevice .


Fields

CameraOpenMethod

C#

public CameraDeviceFrameSource.CameraDeviceOpenMethod CameraOpenMethod

Camera open method. Only effective if modified before the CameraDeviceFrameSource.DeviceOpened event.

CameraOpenType

C#

public CameraDeviceType CameraOpenType

Camera open type used when CameraDeviceFrameSource.CameraOpenMethod == CameraDeviceFrameSource.CameraDeviceOpenMethod.PreferredType or CameraDeviceFrameSource.CameraDeviceOpenMethod.SpecificType . Only effective if modified before the CameraDeviceFrameSource.DeviceOpened event.

CameraOpenIndex

C#

public int CameraOpenIndex

Camera open index used when CameraDeviceFrameSource.CameraOpenMethod == CameraDeviceFrameSource.CameraDeviceOpenMethod.DeviceIndex . Only effective if modified before the CameraDeviceFrameSource.DeviceOpened event.


Properties

enabled

C#

public bool enabled { get; set; }

Start/Stop video stream capture when ARSession is running. Capture will start only when MonoBehaviour .enabled is true after session started.

CameraCount

C#

public static int CameraCount { get; }

Gets count of cameras recognized by the operating system.

Opened

C#

public bool Opened { get; }

Whether camera is opened.

CameraType

C#

public CameraDeviceType CameraType { get; }

Camera type. Only usable when CameraDeviceFrameSource.Opened is true.

Index

C#

public int Index { get; }

Camera index. Only usable when CameraDeviceFrameSource.Opened is true.

AndroidCameraApiType

C#

public AndroidCameraApiType AndroidCameraApiType { get; }

Gets current camera API (camera1 or camera2) on Android. Only usable when CameraDeviceFrameSource.Opened is true.

SupportedSize

C#

public List< Vector2Int > SupportedSize { get; }

Supported preview size of current device. Only usable when CameraDeviceFrameSource.Opened is true.

SupportedFrameRateRange

C#

public List< Vector2 > SupportedFrameRateRange { get; }

Supported frame rate ranges of current device. Only usable when CameraDeviceFrameSource.Opened is true.

FrameRateRange

C#

public Vector2 FrameRateRange { get; }

Frame rate range. Only usable when CameraDeviceFrameSource.Opened is true.

Size

C#

public Vector2Int Size { get; set; }

Current preview size. Only usable when CameraDeviceFrameSource.Opened is true.

The nearest value from CameraDeviceFrameSource.SupportedSize will be used when set.

If the image size is modified during the FrameRecorder recording process, the recording data will stop updating. You will need to stop and restart the recording.

FrameRateRangeIndex

C#

public int FrameRateRangeIndex { get; set; }

Current index of frame rate range. Only usable when CameraDeviceFrameSource.Opened is true.

Parameters

C#

public CameraParameters Parameters { get; set; }

Camera parameters. Only usable when CameraDeviceFrameSource.Opened is true.

FocusMode

C#

public CameraDeviceFocusMode FocusMode { set; }

Focus mode. Only usable when CameraDeviceFrameSource.Opened is true.

DesiredFocusMode

C#

public Optional< CameraDeviceFocusMode > DesiredFocusMode { get; set; }

Desired focus mode. Only effective if modified before the CameraDeviceFrameSource.DeviceOpened event.

Note: focus switch may not work on some devices due to hardware or system limitation. Default value will be chosen according to CameraDeviceFrameSource.DesiredCameraPreference will be used if not set.

DesiredAndroidCameraApiType

C#

public Optional< AndroidCameraApiType > DesiredAndroidCameraApiType { get; set; }

Desired Camera Api on Android. Only effective if modified before the CameraDeviceFrameSource.DeviceOpened event.

Default value will be chosen according to CameraDeviceFrameSource.DesiredCameraPreference will be used if not set.

DesiredSize

C#

public Optional< Vector2Int > DesiredSize { get; set; }

Desired camera preview size. Only effective if modified before the CameraDeviceFrameSource.DeviceOpened event.

The nearest value from CameraDeviceFrameSource.SupportedSize will be used. Default value will be used if not set.

DesiredCameraPreference

C#

public Optional< CameraDevicePreference > DesiredCameraPreference { get; set; }

Camera preference used to create camera device. Only effective if modified before the session starts.

CameraCandidate

C#

public Camera CameraCandidate { get; set; }

CameraDeviceFrameSource.Camera candidate. Camera.main will be used if not specified.


Events

DeviceOpened

C#

public event Action<bool, PermissionStatus , string> DeviceOpened

Event when device opened. The bool value indicates if open success.

DeviceClosed

C#

public event Action DeviceClosed

Event when device closed.

DeviceStateChanged

C#

public event Action< CameraState > DeviceStateChanged

Event when device unavailable like disconnected or preempted. It is only available on Windows.


Methods

Open

C#

public void Open()

Open device. If neither CameraDeviceFrameSource.Open nor CameraDeviceFrameSource.Close is called manually, CameraDeviceFrameSource.Open will be automatically invoked upon ARSession startup.

Can only be used after session start.

Close

C#

public void Close()

Close device.

AutoFocus

C#

public bool AutoFocus()

调用一次自动对焦。仅在FocusMode为Normal或Macro时才能使用。

SetFlashTorch

C#

public bool SetFlashTorch(bool on)

Sets flash torch mode. Only usable when CameraDeviceFrameSource.Opened is true.