Table of Contents

Class CameraDevice

Ruang Nama
easyar

CameraDevice mengimplementasikan perangkat kamera, mengeluarkan InputFrame (berisi gambar, parameter kamera, dan timestamp). Tersedia di Windows, Mac, Android, dan iOS. Setelah dibuka, dapat memanggil start/stop untuk memulai dan menghentikan pengumpulan data. start/stop tidak memengaruhi parameter kamera yang telah ditetapkan sebelumnya. Ketika perangkat tidak diperlukan lagi, dapat memanggil close untuk menutupnya. Setelah close, tidak boleh digunakan lagi. CameraDevice mengeluarkan InputFrame melalui inputFrameSource, inputFrameSource harus dihubungkan ke InputFrameSink untuk digunakan. bufferCapacity menunjukkan kapasitas buffer InputFrame. Jika lebih banyak InputFrame yang dikeluarkan dari perangkat ini melebihi jumlah ini dan belum dibebaskan, perangkat tidak akan mengeluarkan InputFrame baru hingga yang sebelumnya dibebaskan. Ini dapat menyebabkan masalah seperti gambar macet. Saat digunakan di Android, perlu menambahkan deklarasi izin android.permission.CAMERA di AndroidManifest.xml. Saat digunakan di iOS, perlu menambahkan deklarasi izin NSCameraUsageDescription di Info.plist.

CameraDevice

Konstruktor

CameraDevice

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

Metode

isAvailable

Memeriksa ketersediaan. Hanya mengembalikan true di Windows, Mac, Android, dan 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()

Mengembalikan

Tipe Deskripsi
Boolean

androidCameraApiType

Di Android, dapat digunakan untuk mendapatkan API Kamera yang digunakan (camera1 atau camera2). camera1 kompatibilitas lebih baik, tetapi kekurangan beberapa informasi penting seperti timestamp. camera2 memiliki masalah kompatibilitas di beberapa perangkat.

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

Mengembalikan

Tipe Deskripsi
AndroidCameraApiType

setAndroidCameraApiType

Di Android, dapat digunakan untuk mengatur API Kamera yang digunakan (Camera 1 atau Camera 2). Harus diatur sebelum memanggil openWithIndex, openWithSpecificType, atau openWithPreferredType, jika tidak tidak akan berlaku. Direkomendasikan menggunakan CameraDeviceSelector untuk membuat CameraDevice dengan API Kamera yang direkomendasikan berdasarkan algoritma utama yang digunakan.

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

Nama Tipe Deskripsi
type AndroidCameraApiType

Mengembalikan

Tipe Deskripsi
Void

bufferCapacity

Kapasitas buffer InputFrame, nilai default adalah 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()

Mengembalikan

Tipe Deskripsi
Int32

setBufferCapacity

Mengatur kapasitas buffer 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)

Parameter

Nama Tipe Deskripsi
capacity Int32

Mengembalikan

Tipe Deskripsi
Void

inputFrameSource

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

Mengembalikan

Tipe Deskripsi
InputFrameSource

setStateChangedCallback

Mengatur callback perubahan status untuk memberi tahu status kamera terputus atau diambil alih. Hanya berlaku di platform 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

Nama Tipe Deskripsi
callbackScheduler CallbackScheduler
stateChangedCallback Optional<Action<CameraState>>

Mengembalikan

Tipe Deskripsi
Void

requestPermissions

Meminta izin sistem kamera. Anda dapat memilih menggunakan fungsi ini atau meminta izin sendiri. Hanya berlaku di platform Android dan iOS, di platform lain perilakunya adalah memanggil callback secara langsung untuk memberi tahu izin telah diberikan. Harus dipanggil di 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)

Parameter

Nama Tipe Deskripsi
callbackScheduler CallbackScheduler
permissionCallback Optional<Action<PermissionStatus,String>>

Mengembalikan

Tipe Deskripsi
Void

cameraCount

Mendapatkan jumlah kamera yang dikenali oleh sistem operasi.

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

Mengembalikan

Tipe Deskripsi
Int32

openWithIndex

Membuka perangkat kamera berdasarkan indeks kamera.

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

Nama Tipe Deskripsi
cameraIndex Int32

Mengembalikan

Tipe Deskripsi
Boolean

openWithSpecificType

Membuka perangkat kamera berdasarkan tipe perangkat kamera yang spesifik, mengembalikan false jika tidak ada tipe yang cocok. Di Mac, tipe kamera tidak dapat dibedakan.

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

Nama Tipe Deskripsi
type CameraDeviceType

Mengembalikan

Tipe Deskripsi
Boolean

openWithPreferredType

Membuka perangkat kamera berdasarkan tipe perangkat kamera, mencoba membuka perangkat kamera pertama jika tidak ada tipe yang cocok.

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

Nama Tipe Deskripsi
type CameraDeviceType

Mengembalikan

Tipe Deskripsi
Boolean

start

Mulai mengumpulkan data.

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

Mengembalikan

Tipe Deskripsi
Boolean

stop

Menghentikan pengumpulan data. Metode ini hanya menghentikan penangkapan gambar, semua parameter dan koneksi tidak akan terpengaruh.

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

Mengembalikan

Tipe Deskripsi
Void

close

Menutup kamera. Setelah close, tidak boleh digunakan lagi.

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

Mengembalikan

Tipe Deskripsi
Void

index

Indeks kamera. Dipanggil setelah open berhasil.

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

Mengembalikan

Tipe Deskripsi
Int32

type

Tipe kamera. Dipanggil setelah open berhasil.

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

Mengembalikan

Tipe Deskripsi
CameraDeviceType

cameraOrientation

Sudut rotasi searah jarum jam yang diperlukan untuk menampilkan gambar kamera dalam orientasi alami perangkat. Dipanggil setelah open berhasil.

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

Mengembalikan

Tipe Deskripsi
Int32

cameraParameters

Parameter kamera, termasuk ukuran gambar, fokus, titik utama, tipe kamera, dan sudut rotasi kamera relatif terhadap orientasi alami perangkat. Dipanggil setelah open berhasil.

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

Mengembalikan

Tipe Deskripsi
CameraParameters

setCameraParameters

Mengatur parameter kamera. Dipanggil setelah open berhasil.

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

Nama Tipe Deskripsi
cameraParameters CameraParameters

Mengembalikan

Tipe Deskripsi
Void

size

Mendapatkan ukuran gambar saat ini. Dipanggil setelah open berhasil.

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

Mengembalikan

Tipe Deskripsi
Vec2I

supportedSizeCount

Mendapatkan jumlah semua ukuran gambar yang didukung oleh perangkat saat ini. Dipanggil setelah open berhasil.

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

Mengembalikan

Tipe Deskripsi
Int32

supportedSize

Mendapatkan ukuran gambar ke-index yang didukung oleh perangkat saat ini. Mengembalikan {0, 0} jika index di luar jangkauan. Dipanggil setelah open berhasil.

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

Nama Tipe Deskripsi
index Int32

Mengembalikan

Tipe Deskripsi
Vec2I

setSize

Mengatur ukuran gambar saat ini. Nilai opsional yang paling mendekati nilai yang diatur akan digunakan. Ukuran aktual dapat diperoleh menggunakan size. Dipanggil setelah open berhasil. frameRateRange mungkin berubah setelah mengatur size.

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

Nama Tipe Deskripsi
size Vec2I

Mengembalikan

Tipe Deskripsi
Boolean

supportedFrameRateRangeCount

Mendapatkan jumlah semua rentang frame rate yang didukung oleh perangkat saat ini. Dipanggil setelah open berhasil.

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

Mengembalikan

Tipe Deskripsi
Int32

supportedFrameRateRangeLower

Mendapatkan batas bawah rentang frame rate ke-index yang didukung oleh perangkat saat ini. Dipanggil setelah open berhasil.

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

Nama Tipe Deskripsi
index Int32

Mengembalikan

Tipe Deskripsi
Single

supportedFrameRateRangeUpper

Mendapatkan batas atas rentang frame rate ke-index yang didukung oleh perangkat saat ini. Dipanggil setelah open berhasil.

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

Nama Tipe Deskripsi
index Int32

Mengembalikan

Tipe Deskripsi
Single

frameRateRange

Mendapatkan indeks rentang frame rate saat ini dari perangkat. Dipanggil setelah open berhasil. Di iOS/macOS, mungkin mengembalikan -1, menunjukkan frame rate tidak tetap, nilai minimum dan maksimum dapat diperoleh menggunakan supportedFrameRateRangeLower dan supportedFrameRateRangeUpper.

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

Mengembalikan

Tipe Deskripsi
Int32

setFrameRateRange

Mengatur indeks rentang frame rate saat ini perangkat. Dipanggil setelah open berhasil.

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

Nama Tipe Deskripsi
index Int32

Mengembalikan

Tipe Deskripsi
Boolean

setFlashTorchMode

Mengatur mode flash torch menjadi on. Dipanggil setelah open berhasil.

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

Nama Tipe Deskripsi
on Boolean

Mengembalikan

Tipe Deskripsi
Boolean

setFocusMode

Mengatur mode fokus menjadi focusMode. Dipanggil setelah open berhasil.

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

Nama Tipe Deskripsi
focusMode CameraDeviceFocusMode

Mengembalikan

Tipe Deskripsi
Boolean

autoFocus

Memanggil fokus otomatis sekali. Digunakan setelah start. Hanya dapat digunakan jika FocusMode adalah Normal atau 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()

Mengembalikan

Tipe Deskripsi
Boolean