Table of Contents

Class CameraDevice

Espacio de nombres
easyar

CameraDevice implementa un dispositivo de cámara, outputs InputFrame (que contiene imágenes, parámetros de la cámara y timestamp). Disponible en Windows, Mac, Android e iOS. Después de abrir, se puede llamar a start/stop para comenzar y detener la recopilación de datos. start/stop no afecta los parámetros de la cámara configurados previamente. Cuando ya no se necesita el dispositivo, se puede llamar a close para cerrarlo. Después de close, no se debe continuar usándolo. CameraDevice outputs InputFrame a través de inputFrameSource, y se debe conectar inputFrameSource a InputFrameSink para su uso. bufferCapacity indica la capacidad del búfer de InputFrame, si se output más de este número de InputFrame desde el dispositivo y no se liberan, el dispositivo dejará de output nuevos InputFrame hasta que los anteriores se liberen. Esto puede causar problemas como congelamiento de la pantalla. Al usar en Android, se debe agregar la declaración de permiso android.permission.CAMERA en AndroidManifest.xml. Al usar en iOS, se debe agregar la declaración de permiso NSCameraUsageDescription en Info.plist.

CameraDevice

Constructores

CameraDevice

void easyar_CameraDevice__ctor(easyar_CameraDevice * * Return)
CameraDevice()
public CameraDevice()
constructor()
+ (easyar_CameraDevice *) create
public convenience init()
public CameraDevice()

Métodos

isAvailable

Comprueba si está disponible. Solo devuelve true en Windows, Mac, Android e iOS.

bool easyar_CameraDevice_isAvailable(void)
static bool isAvailable()
public static boolean isAvailable()
companion object fun isAvailable(): Boolean
+ (bool)isAvailable
public static func isAvailable() -> Bool
public static bool isAvailable()

Devuelve

Tipo Descripción
Boolean

androidCameraApiType

En Android, se puede usar para obtener la API de cámara utilizada (camera1 o camera2). camera1 tiene mejor compatibilidad, pero carece de información necesaria como timestamp. camera2 tiene problemas de compatibilidad en algunos dispositivos.

easyar_AndroidCameraApiType easyar_CameraDevice_androidCameraApiType(easyar_CameraDevice * This)
AndroidCameraApiType androidCameraApiType()
public int androidCameraApiType()
fun androidCameraApiType(): Int
- (easyar_AndroidCameraApiType)androidCameraApiType
public func androidCameraApiType() -> AndroidCameraApiType
public virtual AndroidCameraApiType androidCameraApiType()

Devuelve

Tipo Descripción
AndroidCameraApiType

setAndroidCameraApiType

En Android, se puede usar para configurar la API de cámara utilizada (Camera 1 o Camera 2). Debe configurarse antes de llamar a openWithIndex, openWithSpecificType o openWithPreferredType, de lo contrario no surtirá efecto. Se recomienda usar CameraDeviceSelector para crear un CameraDevice con la API de cámara recomendada según el algoritmo principal utilizado.

void easyar_CameraDevice_setAndroidCameraApiType(easyar_CameraDevice * This, easyar_AndroidCameraApiType type)
void setAndroidCameraApiType(AndroidCameraApiType type)
public void setAndroidCameraApiType(int type)
fun setAndroidCameraApiType(type: Int): Unit
- (void)setAndroidCameraApiType:(easyar_AndroidCameraApiType)type
public func setAndroidCameraApiType(_ type: AndroidCameraApiType) -> Void
public virtual void setAndroidCameraApiType(AndroidCameraApiType type)

Parámetros

Nombre Tipo Descripción
type AndroidCameraApiType

Devuelve

Tipo Descripción
Void

bufferCapacity

Capacidad del búfer de InputFrame, valor predeterminado es 8.

int easyar_CameraDevice_bufferCapacity(const easyar_CameraDevice * This)
int bufferCapacity()
public int bufferCapacity()
fun bufferCapacity(): Int
- (int)bufferCapacity
public func bufferCapacity() -> Int32
public virtual int bufferCapacity()

Devuelve

Tipo Descripción
Int32

setBufferCapacity

Configura la capacidad del búfer de InputFrame.

void easyar_CameraDevice_setBufferCapacity(easyar_CameraDevice * This, int capacity)
void setBufferCapacity(int capacity)
public void setBufferCapacity(int capacity)
fun setBufferCapacity(capacity: Int): Unit
- (void)setBufferCapacity:(int)capacity
public func setBufferCapacity(_ capacity: Int32) -> Void
public virtual void setBufferCapacity(int capacity)

Parámetros

Nombre Tipo Descripción
capacity Int32

Devuelve

Tipo Descripción
Void

inputFrameSource

Puerto de salida de InputFrame.

void easyar_CameraDevice_inputFrameSource(easyar_CameraDevice * This, easyar_InputFrameSource * * Return)
std::shared_ptr<InputFrameSource> inputFrameSource()
public @Nonnull InputFrameSource inputFrameSource()
fun inputFrameSource(): InputFrameSource
- (easyar_InputFrameSource *)inputFrameSource
public func inputFrameSource() -> InputFrameSource
public virtual InputFrameSource inputFrameSource()

Devuelve

Tipo Descripción
InputFrameSource

setStateChangedCallback

Configura la devolución de llamada de cambio de estado para notificar estados como desconexión o usurpación de la cámara. Solo funciona en la plataforma Windows.

void easyar_CameraDevice_setStateChangedCallback(easyar_CameraDevice * This, easyar_CallbackScheduler * callbackScheduler, easyar_OptionalOfFunctorOfVoidFromCameraState stateChangedCallback)
void setStateChangedCallback(std::shared_ptr<CallbackScheduler> callbackScheduler, std::optional<std::function<void(CameraState)>> stateChangedCallback)
public void setStateChangedCallback(@Nonnull CallbackScheduler callbackScheduler, @Nullable FunctorOfVoidFromCameraState stateChangedCallback)
fun setStateChangedCallback(callbackScheduler: CallbackScheduler, stateChangedCallback: FunctorOfVoidFromCameraState?): Unit
- (void)setStateChangedCallback:(easyar_CallbackScheduler *)callbackScheduler stateChangedCallback:(void (^)(easyar_CameraState))stateChangedCallback
public func setStateChangedCallback(_ callbackScheduler: CallbackScheduler, _ stateChangedCallback: ((CameraState) -> Void)?) -> Void
public virtual void setStateChangedCallback(CallbackScheduler callbackScheduler, Optional<Action<CameraState>> stateChangedCallback)

Parámetros

Nombre Tipo Descripción
callbackScheduler CallbackScheduler
stateChangedCallback Optional<Action<CameraState>>

Devuelve

Tipo Descripción
Void

requestPermissions

Solicita permisos del sistema de cámara. Puedes elegir usar esta función o solicitar permisos tú mismo. Solo es efectivo en las plataformas Android e iOS; en otras plataformas, el comportamiento es llamar directamente a la devolución de llamada para notificar que los permisos están otorgados. Debe llamarse en el hilo de la UI.

void easyar_CameraDevice_requestPermissions(easyar_CallbackScheduler * callbackScheduler, easyar_OptionalOfFunctorOfVoidFromPermissionStatusAndString permissionCallback)
static void requestPermissions(std::shared_ptr<CallbackScheduler> callbackScheduler, std::optional<std::function<void(PermissionStatus, std::string)>> permissionCallback)
public static void requestPermissions(@Nonnull CallbackScheduler callbackScheduler, @Nullable FunctorOfVoidFromPermissionStatusAndString permissionCallback)
companion object fun requestPermissions(callbackScheduler: CallbackScheduler, permissionCallback: FunctorOfVoidFromPermissionStatusAndString?): Unit
+ (void)requestPermissions:(easyar_CallbackScheduler *)callbackScheduler permissionCallback:(void (^)(easyar_PermissionStatus status, NSString * value))permissionCallback
public static func requestPermissions(_ callbackScheduler: CallbackScheduler, _ permissionCallback: ((PermissionStatus, String) -> Void)?) -> Void
public static void requestPermissions(CallbackScheduler callbackScheduler, Optional<Action<PermissionStatus, string>> permissionCallback)

Parámetros

Nombre Tipo Descripción
callbackScheduler CallbackScheduler
permissionCallback Optional<Action<PermissionStatus,String>>

Devuelve

Tipo Descripción
Void

cameraCount

Obtiene el número de cámaras reconocidas por el sistema operativo.

int easyar_CameraDevice_cameraCount(void)
static int cameraCount()
public static int cameraCount()
companion object fun cameraCount(): Int
+ (int)cameraCount
public static func cameraCount() -> Int32
public static int cameraCount()

Devuelve

Tipo Descripción
Int32

openWithIndex

Abre el dispositivo de cámara según el índice de la cámara.

bool easyar_CameraDevice_openWithIndex(easyar_CameraDevice * This, int cameraIndex)
bool openWithIndex(int cameraIndex)
public boolean openWithIndex(int cameraIndex)
fun openWithIndex(cameraIndex: Int): Boolean
- (bool)openWithIndex:(int)cameraIndex
public func openWithIndex(_ cameraIndex: Int32) -> Bool
public virtual bool openWithIndex(int cameraIndex)

Parámetros

Nombre Tipo Descripción
cameraIndex Int32

Devuelve

Tipo Descripción
Boolean

openWithSpecificType

Abre el dispositivo de cámara según el tipo exacto de dispositivo de cámara, si no hay un tipo coincidente, devuelve false. En Mac, el tipo de cámara no se puede distinguir.

bool easyar_CameraDevice_openWithSpecificType(easyar_CameraDevice * This, easyar_CameraDeviceType type)
bool openWithSpecificType(CameraDeviceType type)
public boolean openWithSpecificType(int type)
fun openWithSpecificType(type: Int): Boolean
- (bool)openWithSpecificType:(easyar_CameraDeviceType)type
public func openWithSpecificType(_ type: CameraDeviceType) -> Bool
public virtual bool openWithSpecificType(CameraDeviceType type)

Parámetros

Nombre Tipo Descripción
type CameraDeviceType

Devuelve

Tipo Descripción
Boolean

openWithPreferredType

Abre el dispositivo de cámara según el tipo de dispositivo de cámara, si no hay un tipo coincidente, intentará abrir el primer dispositivo de cámara.

bool easyar_CameraDevice_openWithPreferredType(easyar_CameraDevice * This, easyar_CameraDeviceType type)
bool openWithPreferredType(CameraDeviceType type)
public boolean openWithPreferredType(int type)
fun openWithPreferredType(type: Int): Boolean
- (bool)openWithPreferredType:(easyar_CameraDeviceType)type
public func openWithPreferredType(_ type: CameraDeviceType) -> Bool
public virtual bool openWithPreferredType(CameraDeviceType type)

Parámetros

Nombre Tipo Descripción
type CameraDeviceType

Devuelve

Tipo Descripción
Boolean

start

Comienza a recopilar datos.

bool easyar_CameraDevice_start(easyar_CameraDevice * This)
bool start()
public boolean start()
fun start(): Boolean
- (bool)start
public func start() -> Bool
public virtual bool start()

Devuelve

Tipo Descripción
Boolean

stop

Detiene la recopilación de datos. Este método solo detiene la captura de imágenes; todos los parámetros y conexiones no se verán afectados.

void easyar_CameraDevice_stop(easyar_CameraDevice * This)
void stop()
public void stop()
fun stop(): Unit
- (void)stop
public func stop() -> Void
public virtual void stop()

Devuelve

Tipo Descripción
Void

close

Cierra la cámara. Después de close, no se debe continuar usándola.

void easyar_CameraDevice_close(easyar_CameraDevice * This)
void close()
public void close()
fun close(): Unit
- (void)close
public func close() -> Void
public virtual void close()

Devuelve

Tipo Descripción
Void

index

Índice de cámaras. Se llama después de un open exitoso.

int easyar_CameraDevice_index(const easyar_CameraDevice * This)
int index()
public int index()
fun index(): Int
- (int)index
public func index() -> Int32
public virtual int index()

Devuelve

Tipo Descripción
Int32

type

Tipo de cámara. Se llama después de un open exitoso.

easyar_CameraDeviceType easyar_CameraDevice_type(const easyar_CameraDevice * This)
CameraDeviceType type()
public int type()
fun type(): Int
- (easyar_CameraDeviceType)type
public func type() -> CameraDeviceType
public virtual CameraDeviceType type()

Devuelve

Tipo Descripción
CameraDeviceType

cameraOrientation

Ángulo de rotación en el sentido de las agujas del reloj que necesita la imagen de la cámara para mostrarse en la orientación natural del dispositivo. Se llama después de un open exitoso.

int easyar_CameraDevice_cameraOrientation(const easyar_CameraDevice * This)
int cameraOrientation()
public int cameraOrientation()
fun cameraOrientation(): Int
- (int)cameraOrientation
public func cameraOrientation() -> Int32
public virtual int cameraOrientation()

Devuelve

Tipo Descripción
Int32

cameraParameters

Parámetros de la cámara, incluido el tamaño de la imagen, la distancia focal, el punto principal, el tipo de cámara y el ángulo de rotación de la cámara en relación con la orientación natural del dispositivo. Se llama después de un open exitoso.

void easyar_CameraDevice_cameraParameters(easyar_CameraDevice * This, easyar_CameraParameters * * Return)
std::shared_ptr<CameraParameters> cameraParameters()
public @Nonnull CameraParameters cameraParameters()
fun cameraParameters(): CameraParameters
- (easyar_CameraParameters *)cameraParameters
public func cameraParameters() -> CameraParameters
public virtual CameraParameters cameraParameters()

Devuelve

Tipo Descripción
CameraParameters

setCameraParameters

Configura los parámetros de la cámara. Se llama después de un open exitoso.

void easyar_CameraDevice_setCameraParameters(easyar_CameraDevice * This, easyar_CameraParameters * cameraParameters)
void setCameraParameters(std::shared_ptr<CameraParameters> cameraParameters)
public void setCameraParameters(@Nonnull CameraParameters cameraParameters)
fun setCameraParameters(cameraParameters: CameraParameters): Unit
- (void)setCameraParameters:(easyar_CameraParameters *)cameraParameters
public func setCameraParameters(_ cameraParameters: CameraParameters) -> Void
public virtual void setCameraParameters(CameraParameters cameraParameters)

Parámetros

Nombre Tipo Descripción
cameraParameters CameraParameters

Devuelve

Tipo Descripción
Void

size

Obtiene el tamaño de imagen actual. Se llama después de un open exitoso.

easyar_Vec2I easyar_CameraDevice_size(const easyar_CameraDevice * This)
Vec2I size()
public @Nonnull Vec2I size()
fun size(): Vec2I
- (easyar_Vec2I *)size
public func size() -> Vec2I
public virtual Vec2I size()

Devuelve

Tipo Descripción
Vec2I

supportedSizeCount

Obtiene el número de todos los tamaños de imagen admitidos por el dispositivo actual. Se llama después de un open exitoso.

int easyar_CameraDevice_supportedSizeCount(const easyar_CameraDevice * This)
int supportedSizeCount()
public int supportedSizeCount()
fun supportedSizeCount(): Int
- (int)supportedSizeCount
public func supportedSizeCount() -> Int32
public virtual int supportedSizeCount()

Devuelve

Tipo Descripción
Int32

supportedSize

Obtiene el tamaño de imagen en el índice de todos los tamaños de imagen admitidos por el dispositivo actual. Si el índice está fuera de rango, devuelve {0, 0}. Se llama después de un open exitoso.

easyar_Vec2I easyar_CameraDevice_supportedSize(const easyar_CameraDevice * This, int index)
Vec2I supportedSize(int index)
public @Nonnull Vec2I supportedSize(int index)
fun supportedSize(index: Int): Vec2I
- (easyar_Vec2I *)supportedSize:(int)index
public func supportedSize(_ index: Int32) -> Vec2I
public virtual Vec2I supportedSize(int index)

Parámetros

Nombre Tipo Descripción
index Int32

Devuelve

Tipo Descripción
Vec2I

setSize

Configura el tamaño de imagen actual. Se usará el valor opcional más cercano al valor configurado. Se puede usar size para obtener el tamaño real. Se llama después de un open exitoso. Después de configurar size, frameRateRange puede cambiar.

bool easyar_CameraDevice_setSize(easyar_CameraDevice * This, easyar_Vec2I size)
bool setSize(Vec2I size)
public boolean setSize(@Nonnull Vec2I size)
fun setSize(size: Vec2I): Boolean
- (bool)setSize:(easyar_Vec2I *)size
public func setSize(_ size: Vec2I) -> Bool
public virtual bool setSize(Vec2I size)

Parámetros

Nombre Tipo Descripción
size Vec2I

Devuelve

Tipo Descripción
Boolean

supportedFrameRateRangeCount

Obtiene el número de todos los rangos de frecuencia de cuadro admitidos por el dispositivo actual. Se llama después de un open exitoso.

int easyar_CameraDevice_supportedFrameRateRangeCount(const easyar_CameraDevice * This)
int supportedFrameRateRangeCount()
public int supportedFrameRateRangeCount()
fun supportedFrameRateRangeCount(): Int
- (int)supportedFrameRateRangeCount
public func supportedFrameRateRangeCount() -> Int32
public virtual int supportedFrameRateRangeCount()

Devuelve

Tipo Descripción
Int32

supportedFrameRateRangeLower

Obtiene el límite inferior del rango de frecuencia de cuadro en el índice de todos los rangos de frecuencia de cuadro admitidos por el dispositivo actual. Se llama después de un open exitoso.

float easyar_CameraDevice_supportedFrameRateRangeLower(const easyar_CameraDevice * This, int index)
float supportedFrameRateRangeLower(int index)
public float supportedFrameRateRangeLower(int index)
fun supportedFrameRateRangeLower(index: Int): Float
- (float)supportedFrameRateRangeLower:(int)index
public func supportedFrameRateRangeLower(_ index: Int32) -> Float
public virtual float supportedFrameRateRangeLower(int index)

Parámetros

Nombre Tipo Descripción
index Int32

Devuelve

Tipo Descripción
Single

supportedFrameRateRangeUpper

Obtiene el límite superior del rango de frecuencia de cuadro en el índice de todos los rangos de frecuencia de cuadro admitidos por el dispositivo actual. Se llama después de un open exitoso.

float easyar_CameraDevice_supportedFrameRateRangeUpper(const easyar_CameraDevice * This, int index)
float supportedFrameRateRangeUpper(int index)
public float supportedFrameRateRangeUpper(int index)
fun supportedFrameRateRangeUpper(index: Int): Float
- (float)supportedFrameRateRangeUpper:(int)index
public func supportedFrameRateRangeUpper(_ index: Int32) -> Float
public virtual float supportedFrameRateRangeUpper(int index)

Parámetros

Nombre Tipo Descripción
index Int32

Devuelve

Tipo Descripción
Single

frameRateRange

Obtiene el índice del rango de frecuencia de cuadro actual del dispositivo actual. Se llama después de un open exitoso. En iOS/macOS, puede devolver -1, lo que indica que la frecuencia de cuadro no es fija; se pueden usar supportedFrameRateRangeLower y supportedFrameRateRangeUpper para obtener los valores mínimo y máximo.

int easyar_CameraDevice_frameRateRange(const easyar_CameraDevice * This)
int frameRateRange()
public int frameRateRange()
fun frameRateRange(): Int
- (int)frameRateRange
public func frameRateRange() -> Int32
public virtual int frameRateRange()

Devuelve

Tipo Descripción
Int32

setFrameRateRange

Configura el índice del rango de frecuencia de cuadro actual del dispositivo actual. Se llama después de un open exitoso.

bool easyar_CameraDevice_setFrameRateRange(easyar_CameraDevice * This, int index)
bool setFrameRateRange(int index)
public boolean setFrameRateRange(int index)
fun setFrameRateRange(index: Int): Boolean
- (bool)setFrameRateRange:(int)index
public func setFrameRateRange(_ index: Int32) -> Bool
public virtual bool setFrameRateRange(int index)

Parámetros

Nombre Tipo Descripción
index Int32

Devuelve

Tipo Descripción
Boolean

setFlashTorchMode

Configura el modo de flash torch como on. Se llama después de un open exitoso.

bool easyar_CameraDevice_setFlashTorchMode(easyar_CameraDevice * This, bool on)
bool setFlashTorchMode(bool on)
public boolean setFlashTorchMode(boolean on)
fun setFlashTorchMode(on: Boolean): Boolean
- (bool)setFlashTorchMode:(bool)on
public func setFlashTorchMode(_ on: Bool) -> Bool
public virtual bool setFlashTorchMode(bool on)

Parámetros

Nombre Tipo Descripción
on Boolean

Devuelve

Tipo Descripción
Boolean

setFocusMode

Configura el modo de enfoque como focusMode. Se llama después de un open exitoso.

bool easyar_CameraDevice_setFocusMode(easyar_CameraDevice * This, easyar_CameraDeviceFocusMode focusMode)
bool setFocusMode(CameraDeviceFocusMode focusMode)
public boolean setFocusMode(int focusMode)
fun setFocusMode(focusMode: Int): Boolean
- (bool)setFocusMode:(easyar_CameraDeviceFocusMode)focusMode
public func setFocusMode(_ focusMode: CameraDeviceFocusMode) -> Bool
public virtual bool setFocusMode(CameraDeviceFocusMode focusMode)

Parámetros

Nombre Tipo Descripción
focusMode CameraDeviceFocusMode

Devuelve

Tipo Descripción
Boolean

autoFocus

Llama una vez al enfoque automático. Se usa después de start. Solo se puede usar cuando FocusMode es Normal o Macro.

bool easyar_CameraDevice_autoFocus(easyar_CameraDevice * This)
bool autoFocus()
public boolean autoFocus()
fun autoFocus(): Boolean
- (bool)autoFocus
public func autoFocus() -> Bool
public virtual bool autoFocus()

Devuelve

Tipo Descripción
Boolean