Class CameraDevice
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)
+ (easyar_CameraDevice *) create
public convenience init()
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
public static func isAvailable() -> Bool
public static bool isAvailable()
Rückgabewert
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
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
Rückgabewert
bufferCapacity
Pufferkapazität für InputFrame. Standardwert ist 8.
int easyar_CameraDevice_bufferCapacity(const easyar_CameraDevice * This)
public int bufferCapacity()
fun bufferCapacity(): Int
public func bufferCapacity() -> Int32
public virtual int bufferCapacity()
Rückgabewert
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)
Parameter
| Name |
Typ |
Beschreibung |
| capacity |
Int32 |
|
Rückgabewert
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
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
Rückgabewert
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
Rückgabewert
cameraCount
Ermittelt die Anzahl der systemerkennbaren Kameras.
int easyar_CameraDevice_cameraCount(void)
public static int cameraCount()
companion object fun cameraCount(): Int
public static func cameraCount() -> Int32
public static int cameraCount()
Rückgabewert
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
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
Rückgabewert
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
Rückgabewert
start
Startet die Datenerfassung.
bool easyar_CameraDevice_start(easyar_CameraDevice * This)
public func start() -> Bool
public virtual bool start()
Rückgabewert
stop
Stoppt die Datenerfassung. Betrifft nur die Bildaufnahme; Parameter/Verbindungen bleiben unverändert.
void easyar_CameraDevice_stop(easyar_CameraDevice * This)
public func stop() -> Void
public virtual void stop()
Rückgabewert
close
Schließt die Kamera. Nach close nicht weiter verwenden.
void easyar_CameraDevice_close(easyar_CameraDevice * This)
public func close() -> Void
public virtual void close()
Rückgabewert
index
Kameraindizes. Nach erfolgreichem open aufrufen.
int easyar_CameraDevice_index(const easyar_CameraDevice * This)
public func index() -> Int32
public virtual int index()
Rückgabewert
type
Kameratyp. Nach erfolgreichem open aufrufen.
easyar_CameraDeviceType easyar_CameraDevice_type(const easyar_CameraDevice * This)
- (easyar_CameraDeviceType)type
public func type() -> CameraDeviceType
public virtual CameraDeviceType type()
Rückgabewert
cameraOrientation
Drehwinkel (im Uhrzeigersinn) für natürliche Geräteausrichtung. Nach erfolgreichem open aufrufen.
int easyar_CameraDevice_cameraOrientation(const easyar_CameraDevice * This)
public int cameraOrientation()
fun cameraOrientation(): Int
public func cameraOrientation() -> Int32
public virtual int cameraOrientation()
Rückgabewert
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
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
Rückgabewert
size
Ermittelt aktuelle Bildgröße. Nach erfolgreichem open aufrufen.
easyar_Vec2I easyar_CameraDevice_size(const easyar_CameraDevice * This)
public @Nonnull Vec2I size()
public func size() -> Vec2I
public virtual Vec2I size()
Rückgabewert
supportedSizeCount
Ermittelt Anzahl aller unterstützten Bildgrößen. Nach erfolgreichem open aufrufen.
int easyar_CameraDevice_supportedSizeCount(const easyar_CameraDevice * This)
public int supportedSizeCount()
fun supportedSizeCount(): Int
- (int)supportedSizeCount
public func supportedSizeCount() -> Int32
public virtual int supportedSizeCount()
Rückgabewert
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
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)
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
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
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
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
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)
public int frameRateRange()
fun frameRateRange(): Int
public func frameRateRange() -> Int32
public virtual int frameRateRange()
Rückgabewert
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
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
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
Rückgabewert
autoFocus
Löst einmaligen Autofokus aus. Nach start verwenden. Nur bei FocusMode Normal oder Macro nutzbar.
bool easyar_CameraDevice_autoFocus(easyar_CameraDevice * This)
public boolean autoFocus()
public func autoFocus() -> Bool
public virtual bool autoFocus()
Rückgabewert