Table of Contents

Class CameraDevice

Spazio dei nomi
easyar

CameraDevice implementa un dispositivo camera,che emette InputFrame (contiene immagini,parametri della camera e timestamp).Disponibile su Windows,Mac,Android e iOS. Dopo l'apertura,è possibile chiamare start/stop per iniziare e interrompere l'acquisizione dei dati.start/stop non influisce sui parametri della camera impostati in precedenza. Quando il dispositivo non è più necessario,è possibile chiamare close per chiuderlo.Dopo close,non dovrebbe essere più utilizzato. CameraDevice emette InputFrame tramite inputFrameSource;inputFrameSource dovrebbe essere collegato a InputFrameSink per l'uso. bufferCapacity indica la capacità del buffer per InputFrame;se vengono emessi più InputFrame da questo dispositivo e non vengono rilasciati,il dispositivo non emetterà nuovi InputFrame finché quelli precedenti non vengono rilasciati.Ciò potrebbe causare problemi come il blocco dello schermo. Su Android,è necessario dichiarare il permesso android.permission.CAMERA in AndroidManifest.xml. Su iOS,è necessario dichiarare il permesso NSCameraUsageDescription in Info.plist.

CameraDevice

Costruttori

CameraDevice

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

Metodi

isAvailable

Controlla se è disponibile.Restituisce true solo su 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()

Valore restituito

Tipo Descrizione
Boolean

androidCameraApiType

Su Android,può essere usato per ottenere l'API Camera utilizzato (camera1 o camera2).camera1 ha una migliore compatibilità,ma manca di alcune informazioni necessarie,come il timestamp.camera2 ha problemi di compatibilità su alcuni dispositivi.

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()

Valore restituito

Tipo Descrizione
AndroidCameraApiType

setAndroidCameraApiType

Su Android,può essere usato per impostare l'API Camera utilizzato (Camera1 o Camera2).Deve essere impostato prima di chiamare openWithIndex,openWithSpecificType o openWithPreferredType,altrimenti non avrà effetto. Si consiglia di utilizzare CameraDeviceSelector per creare un CameraDevice con l'API Camera consigliata in base all'algoritmo principale utilizzato.

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)

Parametri

Nome Tipo Descrizione
type AndroidCameraApiType

Valore restituito

Tipo Descrizione
Void

bufferCapacity

Capacità del buffer per InputFrame,valore predefinito è 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()

Valore restituito

Tipo Descrizione
Int32

setBufferCapacity

Imposta la capacità del buffer per 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)

Parametri

Nome Tipo Descrizione
capacity Int32

Valore restituito

Tipo Descrizione
Void

inputFrameSource

Porta di output per 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()

Valore restituito

Tipo Descrizione
InputFrameSource

setStateChangedCallback

Imposta una callback per i cambiamenti di stato per notificare lo stato di disconnessione o prelazione della camera.Funziona solo su 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)

Parametri

Nome Tipo Descrizione
callbackScheduler CallbackScheduler
stateChangedCallback Optional<Action<CameraState>>

Valore restituito

Tipo Descrizione
Void

requestPermissions

Richiedi il permesso di sistema per la camera.Puoi scegliere di usare questa funzione o richiedere tu stesso il permesso.Funziona solo su Android e iOS;su altre piattaforme,chiama direttamente la callback per notificare che il permesso è concesso.Dovrebbe essere chiamato nel thread 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)

Parametri

Nome Tipo Descrizione
callbackScheduler CallbackScheduler
permissionCallback Optional<Action<PermissionStatus,String>>

Valore restituito

Tipo Descrizione
Void

cameraCount

Ottieni il numero di camere riconosciute dal 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()

Valore restituito

Tipo Descrizione
Int32

openWithIndex

Apri il dispositivo camera per indice della camera.

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)

Parametri

Nome Tipo Descrizione
cameraIndex Int32

Valore restituito

Tipo Descrizione
Boolean

openWithSpecificType

Apri il dispositivo camera per tipo specifico di dispositivo camera;se non c'è corrispondenza,restituisce false.Su Mac,il tipo di camera non può essere determinato.

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)

Parametri

Nome Tipo Descrizione
type CameraDeviceType

Valore restituito

Tipo Descrizione
Boolean

openWithPreferredType

Apri il dispositivo camera per tipo di dispositivo camera;se non c'è corrispondenza,tenta di aprire il primo dispositivo camera.

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)

Parametri

Nome Tipo Descrizione
type CameraDeviceType

Valore restituito

Tipo Descrizione
Boolean

start

Inizia l'acquisizione dei dati.

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()

Valore restituito

Tipo Descrizione
Boolean

stop

Interrompe l'acquisizione dei dati.Questo metodo interrompe solo la cattura delle immagini;tutti i parametri e le connessioni non saranno interessati.

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()

Valore restituito

Tipo Descrizione
Void

close

Chiudi la camera.Dopo close,non dovrebbe essere più utilizzata.

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()

Valore restituito

Tipo Descrizione
Void

index

Indice delle camere.Chiamato dopo un open riuscito.

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()

Valore restituito

Tipo Descrizione
Int32

type

Tipo della camera.Chiamato dopo un open riuscito.

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()

Valore restituito

Tipo Descrizione
CameraDeviceType

cameraOrientation

Angolo di rotazione in senso orario necessario per visualizzare l'immagine della camera nella direzione naturale del dispositivo.Chiamato dopo un open riuscito.

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()

Valore restituito

Tipo Descrizione
Int32

cameraParameters

Parametri della camera,inclusi dimensione dell'immagine,lunghezza focale,punto principale,tipo di camera e angolo di rotazione della camera rispetto alla direzione naturale del dispositivo.Chiamato dopo un open riuscito.

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()

Valore restituito

Tipo Descrizione
CameraParameters

setCameraParameters

Imposta i parametri della camera.Chiamato dopo un open riuscito.

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)

Parametri

Nome Tipo Descrizione
cameraParameters CameraParameters

Valore restituito

Tipo Descrizione
Void

size

Ottieni la dimensione corrente dell'immagine.Chiamato dopo un open riuscito.

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()

Valore restituito

Tipo Descrizione
Vec2I

supportedSizeCount

Ottieni il numero di tutte le dimensioni dell'immagine supportate dal dispositivo corrente.Chiamato dopo un open riuscito.

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()

Valore restituito

Tipo Descrizione
Int32

supportedSize

Ottieni la dimensione index-esima di tutte le dimensioni dell'immagine supportate dal dispositivo corrente.Se index è fuori intervallo,restituisce {0,0}.Chiamato dopo un open riuscito.

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)

Parametri

Nome Tipo Descrizione
index Int32

Valore restituito

Tipo Descrizione
Vec2I

setSize

Imposta la dimensione corrente dell'immagine.Verrà utilizzato il valore opzionale più vicino a quello impostato.Puoi usare size per ottenere la dimensione effettiva.Chiamato dopo un open riuscito.Dopo aver impostato size,frameRateRange potrebbe cambiare.

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)

Parametri

Nome Tipo Descrizione
size Vec2I

Valore restituito

Tipo Descrizione
Boolean

supportedFrameRateRangeCount

Ottieni il numero di tutti gli intervalli di frame rate supportati dal dispositivo corrente.Chiamato dopo un open riuscito.

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()

Valore restituito

Tipo Descrizione
Int32

supportedFrameRateRangeLower

Ottieni il limite inferiore dell'intervallo di frame rate index-esimo supportato dal dispositivo corrente.Chiamato dopo un open riuscito.

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)

Parametri

Nome Tipo Descrizione
index Int32

Valore restituito

Tipo Descrizione
Single

supportedFrameRateRangeUpper

Ottieni il limite superiore dell'intervallo di frame rate index-esimo supportato dal dispositivo corrente.Chiamato dopo un open riuscito.

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)

Parametri

Nome Tipo Descrizione
index Int32

Valore restituito

Tipo Descrizione
Single

frameRateRange

Ottieni l'indice dell'intervallo di frame rate corrente del dispositivo corrente.Chiamato dopo un open riuscito.Su iOS/macOS,potrebbe restituire -1,indicando un frame rate non fisso;puoi usare supportedFrameRateRangeLower e supportedFrameRateRangeUpper per ottenere min e max.

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()

Valore restituito

Tipo Descrizione
Int32

setFrameRateRange

Imposta l'indice dell'intervallo di frame rate corrente per il dispositivo corrente.Chiamato dopo un open riuscito.

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)

Parametri

Nome Tipo Descrizione
index Int32

Valore restituito

Tipo Descrizione
Boolean

setFlashTorchMode

Imposta la modalità flash torch su on.Chiamato dopo un open riuscito.

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)

Parametri

Nome Tipo Descrizione
on Boolean

Valore restituito

Tipo Descrizione
Boolean

setFocusMode

Imposta la modalità di messa a fuoco su focusMode.Chiamato dopo un open riuscito.

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)

Parametri

Nome Tipo Descrizione
focusMode CameraDeviceFocusMode

Valore restituito

Tipo Descrizione
Boolean

autoFocus

Chiama una messa a fuoco automatica una volta.Usalo dopo start.Può essere usato solo quando FocusMode è 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()

Valore restituito

Tipo Descrizione
Boolean