Class CameraDevice
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)
+ (easyar_CameraDevice *) create
public convenience init()
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
public static func isAvailable() -> Bool
public static bool isAvailable()
Mengembalikan
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
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
Mengembalikan
bufferCapacity
Kapasitas buffer InputFrame, nilai default adalah 8.
int easyar_CameraDevice_bufferCapacity(const easyar_CameraDevice * This)
public int bufferCapacity()
fun bufferCapacity(): Int
public func bufferCapacity() -> Int32
public virtual int bufferCapacity()
Mengembalikan
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
| Nama |
Tipe |
Deskripsi |
| capacity |
Int32 |
|
Mengembalikan
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
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
Mengembalikan
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
Mengembalikan
cameraCount
Mendapatkan jumlah kamera yang dikenali oleh sistem operasi.
int easyar_CameraDevice_cameraCount(void)
public static int cameraCount()
companion object fun cameraCount(): Int
public static func cameraCount() -> Int32
public static int cameraCount()
Mengembalikan
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
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
Mengembalikan
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
Mengembalikan
start
bool easyar_CameraDevice_start(easyar_CameraDevice * This)
public func start() -> Bool
public virtual bool start()
Mengembalikan
stop
Menghentikan pengumpulan data. Metode ini hanya menghentikan penangkapan gambar, semua parameter dan koneksi tidak akan terpengaruh.
void easyar_CameraDevice_stop(easyar_CameraDevice * This)
public func stop() -> Void
public virtual void stop()
Mengembalikan
close
Menutup kamera. Setelah close, tidak boleh digunakan lagi.
void easyar_CameraDevice_close(easyar_CameraDevice * This)
public func close() -> Void
public virtual void close()
Mengembalikan
index
Indeks kamera. Dipanggil setelah open berhasil.
int easyar_CameraDevice_index(const easyar_CameraDevice * This)
public func index() -> Int32
public virtual int index()
Mengembalikan
type
Tipe kamera. Dipanggil setelah open berhasil.
easyar_CameraDeviceType easyar_CameraDevice_type(const easyar_CameraDevice * This)
- (easyar_CameraDeviceType)type
public func type() -> CameraDeviceType
public virtual CameraDeviceType type()
Mengembalikan
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)
public int cameraOrientation()
fun cameraOrientation(): Int
public func cameraOrientation() -> Int32
public virtual int cameraOrientation()
Mengembalikan
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
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
Mengembalikan
size
Mendapatkan ukuran gambar saat ini. Dipanggil setelah open berhasil.
easyar_Vec2I easyar_CameraDevice_size(const easyar_CameraDevice * This)
public @Nonnull Vec2I size()
public func size() -> Vec2I
public virtual Vec2I size()
Mengembalikan
supportedSizeCount
Mendapatkan jumlah semua ukuran gambar yang didukung oleh perangkat saat ini. Dipanggil setelah open berhasil.
int easyar_CameraDevice_supportedSizeCount(const easyar_CameraDevice * This)
public int supportedSizeCount()
fun supportedSizeCount(): Int
- (int)supportedSizeCount
public func supportedSizeCount() -> Int32
public virtual int supportedSizeCount()
Mengembalikan
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
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)
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
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
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
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
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)
public int frameRateRange()
fun frameRateRange(): Int
public func frameRateRange() -> Int32
public virtual int frameRateRange()
Mengembalikan
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
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
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
Mengembalikan
autoFocus
Memanggil fokus otomatis sekali. Digunakan setelah start. Hanya dapat digunakan jika FocusMode adalah Normal atau Macro.
bool easyar_CameraDevice_autoFocus(easyar_CameraDevice * This)
public boolean autoFocus()
public func autoFocus() -> Bool
public virtual bool autoFocus()
Mengembalikan