Class CameraDevice
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)
+ (easyar_CameraDevice *) create
public convenience init()
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
public static func isAvailable() -> Bool
public static bool isAvailable()
Devuelve
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
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
Devuelve
bufferCapacity
Capacidad del búfer de InputFrame, valor predeterminado es 8.
int easyar_CameraDevice_bufferCapacity(const easyar_CameraDevice * This)
public int bufferCapacity()
fun bufferCapacity(): Int
public func bufferCapacity() -> Int32
public virtual int bufferCapacity()
Devuelve
setBufferCapacity
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
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
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
Devuelve
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
Devuelve
cameraCount
Obtiene el número de cámaras reconocidas por el sistema operativo.
int easyar_CameraDevice_cameraCount(void)
public static int cameraCount()
companion object fun cameraCount(): Int
public static func cameraCount() -> Int32
public static int cameraCount()
Devuelve
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
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
Devuelve
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
Devuelve
start
Comienza a recopilar datos.
bool easyar_CameraDevice_start(easyar_CameraDevice * This)
public func start() -> Bool
public virtual bool start()
Devuelve
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)
public func stop() -> Void
public virtual void stop()
Devuelve
close
Cierra la cámara. Después de close, no se debe continuar usándola.
void easyar_CameraDevice_close(easyar_CameraDevice * This)
public func close() -> Void
public virtual void close()
Devuelve
index
Índice de cámaras. Se llama después de un open exitoso.
int easyar_CameraDevice_index(const easyar_CameraDevice * This)
public func index() -> Int32
public virtual int index()
Devuelve
type
Tipo de cámara. Se llama después de un open exitoso.
easyar_CameraDeviceType easyar_CameraDevice_type(const easyar_CameraDevice * This)
- (easyar_CameraDeviceType)type
public func type() -> CameraDeviceType
public virtual CameraDeviceType type()
Devuelve
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)
public int cameraOrientation()
fun cameraOrientation(): Int
public func cameraOrientation() -> Int32
public virtual int cameraOrientation()
Devuelve
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
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
Devuelve
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)
public @Nonnull Vec2I size()
public func size() -> Vec2I
public virtual Vec2I size()
Devuelve
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)
public int supportedSizeCount()
fun supportedSizeCount(): Int
- (int)supportedSizeCount
public func supportedSizeCount() -> Int32
public virtual int supportedSizeCount()
Devuelve
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
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)
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
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
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
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
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)
public int frameRateRange()
fun frameRateRange(): Int
public func frameRateRange() -> Int32
public virtual int frameRateRange()
Devuelve
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
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
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
Devuelve
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)
public boolean autoFocus()
public func autoFocus() -> Bool
public virtual bool autoFocus()
Devuelve