Class CameraDevice
CameraDevice implémente un appareil photo, produisant des InputFrame (contenant une image, des paramètres de caméra et un horodatage). Disponible sur Windows, Mac, Android et iOS.
Après ouverture, vous pouvez appeler start/stop pour commencer et arrêter la capture de données. start/stop n'affecte pas les paramètres de la caméra précédemment définis.
Lorsque l'appareil n'est plus nécessaire, appelez close pour le fermer. Il ne faut plus l'utiliser après close.
CameraDevice produit des InputFrame via inputFrameSource. Connectez inputFrameSource à un InputFrameSink pour l'utiliser.
bufferCapacity indique la capacité du tampon de InputFrame. Si plus de InputFrame que cette capacité sont produits par l'appareil et non libérés, celui-ci cessera de produire de nouveaux InputFrame jusqu'à ce que les précédents soient libérés. Cela peut entraîner des problèmes comme une image figée.
Sur Android, l'autorisation android.permission.CAMERA doit être déclarée dans AndroidManifest.xml.
Sur iOS, la déclaration d'autorisation NSCameraUsageDescription doit être ajoutée dans Info.plist.
CameraDevice
Constructeurs
CameraDevice
void easyar_CameraDevice__ctor(easyar_CameraDevice * * Return)
+ (easyar_CameraDevice *) create
public convenience init()
Méthodes
isAvailable
Vérifiez si disponible. Renvoie true uniquement sur Windows, Mac, Android et 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()
Retours
androidCameraApiType
Sur Android, les API Camera disponibles sont camera1 ou camera2. Camera1 offre une meilleure compatibilité, mais manque d'informations essentielles comme l'horodatage. Camera2 présente des problèmes de compatibilité sur certains appareils.
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()
Retours
setAndroidCameraApiType
Sur Android, l'API Camera utilisée (Camera 1 ou Camera 2) peut être définie. Cela doit être configuré avant d'appeler openWithIndex, openWithSpecificType ou openWithPreferredType, sinon cela n'aura aucun effet.
Il est recommandé d'utiliser CameraDeviceSelector pour créer un CameraDevice avec l'API Camera recommandée configurée en fonction des algorithmes principaux utilisés.
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)
Paramètres
Retours
bufferCapacity
InputFrame capacité de la mémoire tampon, valeur par défaut 8.
int easyar_CameraDevice_bufferCapacity(const easyar_CameraDevice * This)
public int bufferCapacity()
fun bufferCapacity(): Int
public func bufferCapacity() -> Int32
public virtual int bufferCapacity()
Retours
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)
Paramètres
| Nom |
Type |
Description |
| capacity |
Int32 |
|
Retours
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()
Retours
setStateChangedCallback
Configurer un callback de changement d'état pour notifier l'état de déconnexion ou de préemption de la caméra. Fonctionne uniquement sur la plateforme 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)
Paramètres
Retours
requestPermissions
Demander l'autorisation système pour la caméra. Vous pouvez choisir d'utiliser cette fonction ou de demander l'autorisation vous-même. Fonctionne uniquement sur les plateformes Android et iOS. Sur les autres plateformes, le comportement consiste à appeler directement le call-back pour notifier que l'autorisation est accordée. Doit être appelée sur le 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)
Paramètres
Retours
cameraCount
Obtenir le nombre de camera reconnu par le système d'exploitation.
int easyar_CameraDevice_cameraCount(void)
public static int cameraCount()
companion object fun cameraCount(): Int
public static func cameraCount() -> Int32
public static int cameraCount()
Retours
openWithIndex
Ouvrir le périphérique camera selon l'index 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)
Paramètres
| Nom |
Type |
Description |
| cameraIndex |
Int32 |
|
Retours
openWithSpecificType
Ouvrez l'appareil photo en fonction du type de périphérique camera exact. Si aucun type ne correspond, la fonction retourne false. Sur Mac, le type de camera ne peut être déterminé.
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)
Paramètres
Retours
openWithPreferredType
Ouvrez le périphérique camera selon son type. S'il n'y a pas de type correspondant, il essaiera d'ouvrir le premier périphérique 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)
Paramètres
Retours
start
Commencer la collecte de données.
bool easyar_CameraDevice_start(easyar_CameraDevice * This)
public func start() -> Bool
public virtual bool start()
Retours
stop
Arrêter la collecte de données. Cette méthode arrêtera uniquement la capture d'images, tous les paramètres et connexions ne seront pas affectés.
void easyar_CameraDevice_stop(easyar_CameraDevice * This)
public func stop() -> Void
public virtual void stop()
Retours
close
Fermer camera。close après ne doit pas continuer à être utilisé。
void easyar_CameraDevice_close(easyar_CameraDevice * This)
public func close() -> Void
public virtual void close()
Retours
index
cameras index. Appelé après un open réussi.
int easyar_CameraDevice_index(const easyar_CameraDevice * This)
public func index() -> Int32
public virtual int index()
Retours
type
type de caméra. Appelé après un open réussi.
easyar_CameraDeviceType easyar_CameraDevice_type(const easyar_CameraDevice * This)
- (easyar_CameraDeviceType)type
public func type() -> CameraDeviceType
public virtual CameraDeviceType type()
Retours
cameraOrientation
L'angle de rotation dans le sens horaire nécessaire pour afficher l'image de la caméra dans l'orientation naturelle de l'appareil. Appelé après un open réussi.
int easyar_CameraDevice_cameraOrientation(const easyar_CameraDevice * This)
public int cameraOrientation()
fun cameraOrientation(): Int
public func cameraOrientation() -> Int32
public virtual int cameraOrientation()
Retours
cameraParameters
Paramètres de la caméra, incluant la taille de l'image, la distance focale, le point principal, le type de caméra et l'angle de rotation de la caméra par rapport à l'orientation naturelle de l'appareil. Appelé après un open réussi.
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()
Retours
setCameraParameters
Configuration des paramètres de la caméra. À appeler après un open réussi.
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)
Paramètres
Retours
size
Obtenir la taille actuelle de l'image. Appeler après un open réussi.
easyar_Vec2I easyar_CameraDevice_size(const easyar_CameraDevice * This)
public @Nonnull Vec2I size()
public func size() -> Vec2I
public virtual Vec2I size()
Retours
supportedSizeCount
Obtenir le nombre de toutes les tailles d'image prises en charge par l'appareil actuel. Appeler après une ouverture réussie.
int easyar_CameraDevice_supportedSizeCount(const easyar_CameraDevice * This)
public int supportedSizeCount()
fun supportedSizeCount(): Int
- (int)supportedSizeCount
public func supportedSizeCount() -> Int32
public virtual int supportedSizeCount()
Retours
supportedSize
Obtenir la taille d'image index-ième parmi toutes les tailles d'image prises en charge par l'appareil actuel. Retourne {0, 0} si l'index est hors limites. À appeler après un open réussi.
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)
Paramètres
| Nom |
Type |
Description |
| index |
Int32 |
|
Retours
setSize
Définir la taille actuelle de l'image. La valeur optionnelle la plus proche de la valeur définie sera utilisée. Utilisez size pour obtenir la taille réelle. À appeler après un open réussi. Après avoir défini size, frameRateRange peut changer.
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)
Paramètres
| Nom |
Type |
Description |
| size |
Vec2I |
|
Retours
supportedFrameRateRangeCount
Obtenez le nombre de toutes les plages de fréquence d'images prises en charge par l'appareil actuel. Appeler après une ouverture réussie.
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()
Retours
supportedFrameRateRangeLower
Obtenir la borne inférieure de la plage de taux de rafraîchissement à l'index spécifié parmi toutes les plages supportées par l'appareil actuel. À appeler après un open réussi.
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)
Paramètres
| Nom |
Type |
Description |
| index |
Int32 |
|
Retours
supportedFrameRateRangeUpper
Obtenir la borne supérieure de la index-ième plage de taux de rafraîchissement prise en charge par le périphérique actuel. Appeler après un open réussi.
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)
Paramètres
| Nom |
Type |
Description |
| index |
Int32 |
|
Retours
frameRateRange
Obtenir l'index de la plage de fréquence d'images actuelle de l'appareil. Appeler après un open réussi. Sur iOS/macOS, peut retourner -1, indiquant une fréquence d'images non fixe ; supportedFrameRateRangeLower et supportedFrameRateRangeUpper peuvent être utilisés pour obtenir les valeurs minimale et maximale.
int easyar_CameraDevice_frameRateRange(const easyar_CameraDevice * This)
public int frameRateRange()
fun frameRateRange(): Int
public func frameRateRange() -> Int32
public virtual int frameRateRange()
Retours
setFrameRateRange
Définir l'index de la plage de fréquence d'images actuelle pour l'appareil actuel. À appeler après un open réussi.
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)
Paramètres
| Nom |
Type |
Description |
| index |
Int32 |
|
Retours
setFlashTorchMode
Définissez le mode flash torch sur on. Appelée après une ouverture réussie.
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)
Paramètres
| Nom |
Type |
Description |
| on |
Boolean |
|
Retours
setFocusMode
Définissez le mode de mise au point sur focusMode. Appelez après un open réussi.
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)
Paramètres
Retours
autoFocus
Appelez une fois la mise au point automatique. À utiliser après le démarrage. Ne peut être utilisé que lorsque le FocusMode est Normal ou Macro.
bool easyar_CameraDevice_autoFocus(easyar_CameraDevice * This)
public boolean autoFocus()
public func autoFocus() -> Bool
public virtual bool autoFocus()
Retours