Table of Contents

Class CameraDevice

Namespace
easyar

CameraDevice implementiert ein Kameragerät, das InputFrame ausgibt (enthält Bild, Kameraparameter und Zeitstempel). Verfügbar unter Windows, Mac, Android und iOS. Nach dem Öffnen können start/stop aufgerufen werden, um die Datenerfassung zu beginnen/beenden. start/stop beeinflussen nicht die zuvor gesetzten Kameraparameter. Wenn das Gerät nicht mehr benötigt wird, kann close zum Schließen aufgerufen werden. Nach close sollte es nicht weiter verwendet werden. CameraDevice gibt InputFrame über inputFrameSource aus. inputFrameSource sollte mit InputFrameSink verbunden werden. bufferCapacity gibt die Pufferkapazität für InputFrame an. Werden mehr InputFrame ausgegeben als diese Anzahl und nicht freigegeben, stoppt die Ausgabe neuer Frames bis zur Freigabe. Dies kann zu hängenden Bildern führen. Auf Android ist die Berechtigung android.permission.CAMERA in AndroidManifest.xml erforderlich. Auf iOS ist die NSCameraUsageDescription-Berechtigung in Info.plist erforderlich.

CameraDevice

Konstruktoren

CameraDevice

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

Methoden

isAvailable

Prüft die Verfügbarkeit. Gibt nur unter Windows, Mac, Android und iOS true zurück.

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

Rückgabewert

Typ Beschreibung
Boolean

androidCameraApiType

Auf Android: Ermöglicht die Abfrage der verwendeten Kamera-API (camera1 oder camera2). camera1 hat bessere Kompatibilität, fehlen jedoch wichtige Informationen wie Zeitstempel. camera2 hat auf manchen Geräten Kompatibilitätsprobleme.

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

Rückgabewert

Typ Beschreibung
AndroidCameraApiType

setAndroidCameraApiType

Auf Android: Legt die zu verwendende Kamera-API fest (Camera 1 oder Camera 2). Muss vor openWithIndex, openWithSpecificType oder openWithPreferredType gesetzt werden, sonst unwirksam. Empfohlen wird CameraDeviceSelector, um ein CameraDevice mit empfohlener API basierend auf dem Hauptalgorithmus zu erstellen.

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)

Parameter

Name Typ Beschreibung
type AndroidCameraApiType

Rückgabewert

Typ Beschreibung
Void

bufferCapacity

Pufferkapazität für InputFrame. Standardwert ist 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()

Rückgabewert

Typ Beschreibung
Int32

setBufferCapacity

Legt die Pufferkapazität für InputFrame fest.

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)

Parameter

Name Typ Beschreibung
capacity Int32

Rückgabewert

Typ Beschreibung
Void

inputFrameSource

Ausgangsport für 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()

Rückgabewert

Typ Beschreibung
InputFrameSource

setStateChangedCallback

Setzt einen Rückruf für Statusänderungen, um Kameratrennung oder -verdrängung zu melden. Wirkt nur unter 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)

Parameter

Name Typ Beschreibung
callbackScheduler CallbackScheduler
stateChangedCallback Optional<Action<CameraState>>

Rückgabewert

Typ Beschreibung
Void

requestPermissions

Fordert Kamerasystemberechtigungen an. Kann verwendet werden oder eigene Berechtigungsanfrage. Nur unter Android/iOS wirksam; andere Plattformen melden Berechtigung direkt via Rückruf. Soll im UI-Thread aufgerufen werden.

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)

Parameter

Name Typ Beschreibung
callbackScheduler CallbackScheduler
permissionCallback Optional<Action<PermissionStatus,String>>

Rückgabewert

Typ Beschreibung
Void

cameraCount

Ermittelt die Anzahl der systemerkennbaren Kameras.

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

Rückgabewert

Typ Beschreibung
Int32

openWithIndex

Öffnet das Kameragerät nach Index.

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)

Parameter

Name Typ Beschreibung
cameraIndex Int32

Rückgabewert

Typ Beschreibung
Boolean

openWithSpecificType

Öffnet das Kameragerät nach exaktem Typ. Gibt false zurück, wenn nicht verfügbar. Unter Mac sind Kameratypen nicht unterscheidbar.

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)

Parameter

Name Typ Beschreibung
type CameraDeviceType

Rückgabewert

Typ Beschreibung
Boolean

openWithPreferredType

Öffnet das Kameragerät nach Typ. Versucht erste verfügbare Kamera bei Nichtverfügbarkeit.

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)

Parameter

Name Typ Beschreibung
type CameraDeviceType

Rückgabewert

Typ Beschreibung
Boolean

start

Startet die Datenerfassung.

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

Rückgabewert

Typ Beschreibung
Boolean

stop

Stoppt die Datenerfassung. Betrifft nur die Bildaufnahme; Parameter/Verbindungen bleiben unverändert.

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

Rückgabewert

Typ Beschreibung
Void

close

Schließt die Kamera. Nach close nicht weiter verwenden.

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

Rückgabewert

Typ Beschreibung
Void

index

Kameraindizes. Nach erfolgreichem open aufrufen.

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

Rückgabewert

Typ Beschreibung
Int32

type

Kameratyp. Nach erfolgreichem open aufrufen.

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

Rückgabewert

Typ Beschreibung
CameraDeviceType

cameraOrientation

Drehwinkel (im Uhrzeigersinn) für natürliche Geräteausrichtung. Nach erfolgreichem open aufrufen.

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

Rückgabewert

Typ Beschreibung
Int32

cameraParameters

Kameraparameter (Bildgröße, Brennweite, Hauptpunkt, Typ, Drehwinkel relativ zur Geräteausrichtung). Nach erfolgreichem open aufrufen.

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

Rückgabewert

Typ Beschreibung
CameraParameters

setCameraParameters

Setzt Kameraparameter. Nach erfolgreichem open aufrufen.

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)

Parameter

Name Typ Beschreibung
cameraParameters CameraParameters

Rückgabewert

Typ Beschreibung
Void

size

Ermittelt aktuelle Bildgröße. Nach erfolgreichem open aufrufen.

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

Rückgabewert

Typ Beschreibung
Vec2I

supportedSizeCount

Ermittelt Anzahl aller unterstützten Bildgrößen. Nach erfolgreichem open aufrufen.

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

Rückgabewert

Typ Beschreibung
Int32

supportedSize

Ermittelt die index-te unterstützte Bildgröße. Gibt {0,0} bei ungültigem Index zurück. Nach erfolgreichem open aufrufen.

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)

Parameter

Name Typ Beschreibung
index Int32

Rückgabewert

Typ Beschreibung
Vec2I

setSize

Setzt aktuelle Bildgröße. Nächstgelegener verfügbarer Wert wird verwendet. Tatsächliche Größe via size abrufbar. Nach erfolgreichem open aufrufen. frameRateRange kann sich ändern.

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)

Parameter

Name Typ Beschreibung
size Vec2I

Rückgabewert

Typ Beschreibung
Boolean

supportedFrameRateRangeCount

Ermittelt Anzahl aller unterstützten Bildwiederholraten-Bereiche. Nach erfolgreichem open aufrufen.

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

Rückgabewert

Typ Beschreibung
Int32

supportedFrameRateRangeLower

Ermittelt Untergrenze des index-ten Bildwiederholraten-Bereichs. Nach erfolgreichem open aufrufen.

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)

Parameter

Name Typ Beschreibung
index Int32

Rückgabewert

Typ Beschreibung
Single

supportedFrameRateRangeUpper

Ermittelt Obergrenze des index-ten Bildwiederholraten-Bereichs. Nach erfolgreichem open aufrufen.

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)

Parameter

Name Typ Beschreibung
index Int32

Rückgabewert

Typ Beschreibung
Single

frameRateRange

Ermittelt Index des aktuellen Bildwiederholraten-Bereichs. Nach erfolgreichem open aufrufen. Unter iOS/macOS kann -1 zurückgegeben werden (keine feste Rate); min/max via supportedFrameRateRangeLower/Upper abrufbar.

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

Rückgabewert

Typ Beschreibung
Int32

setFrameRateRange

Setzt Index des aktuellen Bildwiederholraten-Bereichs. Nach erfolgreichem open aufrufen.

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)

Parameter

Name Typ Beschreibung
index Int32

Rückgabewert

Typ Beschreibung
Boolean

setFlashTorchMode

Aktiviert Blitzlicht (Torch-Modus). Nach erfolgreichem open aufrufen.

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)

Parameter

Name Typ Beschreibung
on Boolean

Rückgabewert

Typ Beschreibung
Boolean

setFocusMode

Setzt Fokusmodus auf focusMode. Nach erfolgreichem open aufrufen.

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)

Parameter

Name Typ Beschreibung
focusMode CameraDeviceFocusMode

Rückgabewert

Typ Beschreibung
Boolean

autoFocus

Löst einmaligen Autofokus aus. Nach start verwenden. Nur bei FocusMode Normal oder Macro nutzbar.

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

Rückgabewert

Typ Beschreibung
Boolean