Class CameraDevice
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)
+ (easyar_CameraDevice *) create
public convenience init()
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
public static func isAvailable() -> Bool
public static bool isAvailable()
Valore restituito
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
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
Valore restituito
bufferCapacity
Capacità del buffer per InputFrame,valore predefinito è 8.
int easyar_CameraDevice_bufferCapacity(const easyar_CameraDevice * This)
public int bufferCapacity()
fun bufferCapacity(): Int
public func bufferCapacity() -> Int32
public virtual int bufferCapacity()
Valore restituito
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)
Parametri
| Nome |
Tipo |
Descrizione |
| capacity |
Int32 |
|
Valore restituito
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
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
Valore restituito
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
Valore restituito
cameraCount
Ottieni il numero di camere riconosciute dal 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()
Valore restituito
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
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
Valore restituito
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
Valore restituito
start
Inizia l'acquisizione dei dati.
bool easyar_CameraDevice_start(easyar_CameraDevice * This)
public func start() -> Bool
public virtual bool start()
Valore restituito
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)
public func stop() -> Void
public virtual void stop()
Valore restituito
close
Chiudi la camera.Dopo close,non dovrebbe essere più utilizzata.
void easyar_CameraDevice_close(easyar_CameraDevice * This)
public func close() -> Void
public virtual void close()
Valore restituito
index
Indice delle camere.Chiamato dopo un open riuscito.
int easyar_CameraDevice_index(const easyar_CameraDevice * This)
public func index() -> Int32
public virtual int index()
Valore restituito
type
Tipo della camera.Chiamato dopo un open riuscito.
easyar_CameraDeviceType easyar_CameraDevice_type(const easyar_CameraDevice * This)
- (easyar_CameraDeviceType)type
public func type() -> CameraDeviceType
public virtual CameraDeviceType type()
Valore restituito
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)
public int cameraOrientation()
fun cameraOrientation(): Int
public func cameraOrientation() -> Int32
public virtual int cameraOrientation()
Valore restituito
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
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
Valore restituito
size
Ottieni la dimensione corrente dell'immagine.Chiamato dopo un open riuscito.
easyar_Vec2I easyar_CameraDevice_size(const easyar_CameraDevice * This)
public @Nonnull Vec2I size()
public func size() -> Vec2I
public virtual Vec2I size()
Valore restituito
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)
public int supportedSizeCount()
fun supportedSizeCount(): Int
- (int)supportedSizeCount
public func supportedSizeCount() -> Int32
public virtual int supportedSizeCount()
Valore restituito
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
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)
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
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
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
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
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)
public int frameRateRange()
fun frameRateRange(): Int
public func frameRateRange() -> Int32
public virtual int frameRateRange()
Valore restituito
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
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
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
Valore restituito
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)
public boolean autoFocus()
public func autoFocus() -> Bool
public virtual bool autoFocus()
Valore restituito