Table of Contents

Class CameraDevice

Espaço de nomes
easyar

CameraDevice implementa um dispositivo de câmera que produz InputFrame (contendo imagem, parâmetros da câmera e timestamp). Disponível no Windows, Mac, Android e iOS. Após abertura, pode-se chamar start/stop para iniciar e parar a coleta de dados. start/stop não afeta os parâmetros da câmera definidos anteriormente. Quando o dispositivo não for mais necessário, pode-se chamar close para fechá-lo. Após close, não deve continuar a ser usado. CameraDevice produz InputFrame através de inputFrameSource; inputFrameSource deve ser conectado a InputFrameSink para uso. bufferCapacity indica a capacidade do buffer de InputFrame; se mais do que esse número de InputFrame for produzido por este dispositivo e não for liberado, o dispositivo deixará de produzir novos InputFrame até que os anteriores sejam liberados. Isso pode causar problemas como travamento da imagem. No Android, é necessário adicionar a declaração de permissão android.permission.CAMERA no AndroidManifest.xml. No iOS, é necessário adicionar a declaração de permissão NSCameraUsageDescription no Info.plist.

CameraDevice

Construtores

CameraDevice

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

Métodos

isAvailable

Verifica se está disponível. Retorna true apenas no 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()

Retorna

Tipo Descrição
Boolean

androidCameraApiType

No Android, pode ser usado para obter a API de câmera usada (camera1 ou camera2). camera1 tem melhor compatibilidade, mas falta algumas informações necessárias, como timestamp. camera2 tem problemas de compatibilidade em alguns dispositivos.

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

Retorna

Tipo Descrição
AndroidCameraApiType

setAndroidCameraApiType

No Android, pode ser usado para definir a API de câmera usada (Camera 1 ou Camera 2). Deve ser definido antes de chamar openWithIndex, openWithSpecificType ou openWithPreferredType, caso contrário não terá efeito. Recomenda-se usar CameraDeviceSelector para criar um CameraDevice com a API de câmera recomendada com base no algoritmo principal usado.

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)

Parâmetros

Nome Tipo Descrição
type AndroidCameraApiType

Retorna

Tipo Descrição
Void

bufferCapacity

Capacidade do buffer de InputFrame, valor padrão é 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()

Retorna

Tipo Descrição
Int32

setBufferCapacity

Define a capacidade do buffer de 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)

Parâmetros

Nome Tipo Descrição
capacity Int32

Retorna

Tipo Descrição
Void

inputFrameSource

Porta de saída de 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()

Retorna

Tipo Descrição
InputFrameSource

setStateChangedCallback

Define um callback para alterações de estado para notificar sobre desconexão ou preempção da câmera. Funciona apenas na plataforma 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)

Parâmetros

Nome Tipo Descrição
callbackScheduler CallbackScheduler
stateChangedCallback Optional<Action<CameraState>>

Retorna

Tipo Descrição
Void

requestPermissions

Solicita permissão do sistema para a câmera. Você pode escolher usar esta função ou solicitar permissão por conta própria. Válido apenas nas plataformas Android e iOS; em outras plataformas, o comportamento é chamar diretamente o callback notificando que a permissão foi concedida. Deve ser chamado no thread da 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)

Parâmetros

Nome Tipo Descrição
callbackScheduler CallbackScheduler
permissionCallback Optional<Action<PermissionStatus,String>>

Retorna

Tipo Descrição
Void

cameraCount

Obtém o número de câmeras reconhecidas pelo sistema operacional.

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

Retorna

Tipo Descrição
Int32

openWithIndex

Abre o dispositivo de câmera de acordo com o índice da câmera.

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)

Parâmetros

Nome Tipo Descrição
cameraIndex Int32

Retorna

Tipo Descrição
Boolean

openWithSpecificType

Abre o dispositivo de câmera de acordo com o tipo exato do dispositivo de câmera; se não houver tipo correspondente, retorna false. No Mac, o tipo de câmera não pode ser discriminado.

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)

Parâmetros

Nome Tipo Descrição
type CameraDeviceType

Retorna

Tipo Descrição
Boolean

openWithPreferredType

Abre o dispositivo de câmera de acordo com o tipo do dispositivo de câmera; se não houver tipo correspondente, tentará abrir a primeira câmera.

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)

Parâmetros

Nome Tipo Descrição
type CameraDeviceType

Retorna

Tipo Descrição
Boolean

start

Inicia a coleta de dados.

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

Retorna

Tipo Descrição
Boolean

stop

Para a coleta de dados. Este método apenas para a captura de imagens; todos os parâmetros e conexões não serão afetados.

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

Retorna

Tipo Descrição
Void

close

Fecha a câmera. Após close, não deve continuar a ser usado.

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

Retorna

Tipo Descrição
Void

index

Índice das câmeras. Chamado após uma abertura bem-sucedida.

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

Retorna

Tipo Descrição
Int32

type

Tipo de câmera. Chamado após uma abertura bem-sucedida.

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

Retorna

Tipo Descrição
CameraDeviceType

cameraOrientation

Ângulo de rotação no sentido horário necessário para exibir a imagem da câmera na orientação natural do dispositivo. Chamado após uma abertura bem-sucedida.

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

Retorna

Tipo Descrição
Int32

cameraParameters

Parâmetros da câmera, incluindo tamanho da imagem, distância focal, ponto principal, tipo de câmera e ângulo de rotação da câmera em relação à orientação natural do dispositivo. Chamado após uma abertura bem-sucedida.

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

Retorna

Tipo Descrição
CameraParameters

setCameraParameters

Define os parâmetros da câmera. Chamado após uma abertura bem-sucedida.

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)

Parâmetros

Nome Tipo Descrição
cameraParameters CameraParameters

Retorna

Tipo Descrição
Void

size

Obtém o tamanho atual da imagem. Chamado após uma abertura bem-sucedida.

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

Retorna

Tipo Descrição
Vec2I

supportedSizeCount

Obtém o número de todos os tamanhos de imagem suportados pelo dispositivo atual. Chamado após uma abertura bem-sucedida.

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

Retorna

Tipo Descrição
Int32

supportedSize

Obtém o índice-ésimo de todos os tamanhos de imagem suportados pelo dispositivo atual. Se index estiver fora do intervalo, retorna {0, 0}. Chamado após uma abertura bem-sucedida.

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)

Parâmetros

Nome Tipo Descrição
index Int32

Retorna

Tipo Descrição
Vec2I

setSize

Define o tamanho atual da imagem. O valor opcional mais próximo do valor definido será usado. Pode usar size para obter o tamanho real. Chamado após uma abertura bem-sucedida. Após definir size, frameRateRange pode mudar.

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)

Parâmetros

Nome Tipo Descrição
size Vec2I

Retorna

Tipo Descrição
Boolean

supportedFrameRateRangeCount

Obtém o número de todas as faixas de taxa de quadros suportadas pelo dispositivo atual. Chamado após uma abertura bem-sucedida.

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

Retorna

Tipo Descrição
Int32

supportedFrameRateRangeLower

Obtém o limite inferior do índice-ésimo de todas as faixas de taxa de quadros suportadas pelo dispositivo atual. Chamado após uma abertura bem-sucedida.

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)

Parâmetros

Nome Tipo Descrição
index Int32

Retorna

Tipo Descrição
Single

supportedFrameRateRangeUpper

Obtém o limite superior do índice-ésimo de todas as faixas de taxa de quadros suportadas pelo dispositivo atual. Chamado após uma abertura bem-sucedida.

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)

Parâmetros

Nome Tipo Descrição
index Int32

Retorna

Tipo Descrição
Single

frameRateRange

Obtém o índice da faixa de taxa de quadros atual do dispositivo atual. Chamado após uma abertura bem-sucedida. No iOS/macOS, pode retornar -1, indicando taxa de quadros não fixa; pode usar supportedFrameRateRangeLower e supportedFrameRateRangeUpper para obter os valores mínimo e máximo.

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

Retorna

Tipo Descrição
Int32

setFrameRateRange

Define o índice da faixa de taxa de quadros atual do dispositivo atual. Chamado após uma abertura bem-sucedida.

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)

Parâmetros

Nome Tipo Descrição
index Int32

Retorna

Tipo Descrição
Boolean

setFlashTorchMode

Define o modo de flash/torch como on. Chamado após uma abertura bem-sucedida.

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)

Parâmetros

Nome Tipo Descrição
on Boolean

Retorna

Tipo Descrição
Boolean

setFocusMode

Define o modo de foco como focusMode. Chamado após uma abertura bem-sucedida.

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)

Parâmetros

Nome Tipo Descrição
focusMode CameraDeviceFocusMode

Retorna

Tipo Descrição
Boolean

autoFocus

Chama o foco automático uma vez. Usado após start. Pode ser usado apenas quando FocusMode é Normal ou 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()

Retorna

Tipo Descrição
Boolean