CameraDevice Class¶
Description¶
CameraDevice is the class represent a device camera.
You can open/close a camera. You can also close and reopen a different camera with different input parameters at any point. start/stop is used to stat or stop the camera preview but keep pre-set camera parameters. The control methods are similar to those provided in the system API.
CameraDevice is the input source of CameraFrameStreamer. You should call open before any other methods, otherwise they will have no effect. CameraFrameStreamer can only work after a CameraDevice is attached. Close and reopen camera will not breake connections with CameraFrameStreamer.
Constructor¶
- C: void easyar_CameraDevice__ctor(easyar_CameraDevice * * Return)¶
- C++11: CameraDevice()¶
- Traditional C++: CameraDevice()¶
- Java: public CameraDevice()¶
- Objective-C: + (easyar_CameraDevice *) create¶
- Swift (since EasyAR SDK 2.1.0): public convenience init()¶
start¶
Starts the capture.
- C: bool easyar_CameraDevice_start(easyar_CameraDevice * This)¶
- C++11: bool start()¶
- Traditional C++: bool start()¶
- Java: public native boolean start()¶
- Objective-C: - (bool)start¶
- Swift (since EasyAR SDK 2.1.0): public func start() -> Bool¶
stop¶
Stops the capture. Only stops the capture process, all parameters and connections with CameraFrameStreamer are kept unchanged.
- C: bool easyar_CameraDevice_stop(easyar_CameraDevice * This)¶
- C++11: bool stop()¶
- Traditional C++: bool stop()¶
- Java: public native boolean stop()¶
- Objective-C: - (bool)stop¶
- Swift (since EasyAR SDK 2.1.0): public func stop() -> Bool¶
requestPermissions¶
Request platform permission for camera. You can choose to call this or request permissions by yourself.
- C: void easyar_CameraDevice_requestPermissions(easyar_CameraDevice * This, easyar_FunctorOfVoidFromPermissionStatusAndString permissionCallback)¶
- C++11: void requestPermissions(std::function<void(PermissionStatus, std::string)> permissionCallback)¶
- Traditional C++: void requestPermissions(FunctorOfVoidFromPermissionStatusAndString permissionCallback)¶
- Java: public native void requestPermissions(FunctorOfVoidFromPermissionStatusAndString permissionCallback)¶
- Objective-C: - (void)requestPermissions:(void (^)(easyar_PermissionStatus status, NSString * value))permissionCallback¶
- Swift (since EasyAR SDK 2.1.0): public func requestPermissions(_ permissionCallback: @escaping (PermissionStatus, String) -> Void) -> Void¶
open¶
Opens a camera with camera device type. On desktop OSes, Default represents the default camera and the value > 0 represents the device number (start from 1).
- C: bool easyar_CameraDevice_open(easyar_CameraDevice * This, int camera)¶
- C++11: bool open(int camera)¶
- Traditional C++: bool open(int camera)¶
- Java: public native boolean open(int camera)¶
- Objective-C: - (bool)open:(int)camera¶
- Swift (since EasyAR SDK 2.1.0): public func `open`(_ camera: Int32) -> Bool¶
close¶
Closes a camera.
- C: bool easyar_CameraDevice_close(easyar_CameraDevice * This)¶
- C++11: bool close()¶
- Traditional C++: bool close()¶
- Java: public native boolean close()¶
- Objective-C: - (bool)close¶
- Swift (since EasyAR SDK 2.1.0): public func close() -> Bool¶
isOpened¶
Returns true if the CameraDevice is opened, false otherwise. It is useful for the functions getting parameters because only an opened camera will return valid values.
- C: bool easyar_CameraDevice_isOpened(easyar_CameraDevice * This)¶
- C++11: bool isOpened()¶
- Traditional C++: bool isOpened()¶
- Java: public native boolean isOpened()¶
- Objective-C: - (bool)isOpened¶
- Swift (since EasyAR SDK 2.1.0): public func isOpened() -> Bool¶
setHorizontalFlip¶
Set horizontal flip flag to the camera. When set, the camera image will be horizontal flipped from default. Use after a successful open.
When you are using front camera on Android and iOS and HorizontalFlip is set to false or HorizontalFlip set to true in other conditions, EasyAR will turn on the horizontal flip mode.
When horizontal flip mode is on, the camera image will be horizontally flipped from the raw data when display. But the camera data used for tracking will never be flipped.
The default behavior is made to be same with system camera. It makes you feel like looking into a mirror when you are using front camera. You can always change the default behavior by reversing HorizontalFlip.
- C: void easyar_CameraDevice_setHorizontalFlip(easyar_CameraDevice * This, bool flip)¶
- C++11: void setHorizontalFlip(bool flip)¶
- Traditional C++: void setHorizontalFlip(bool flip)¶
- Java: public native void setHorizontalFlip(boolean flip)¶
- Objective-C: - (void)setHorizontalFlip:(bool)flip¶
- Swift (since EasyAR SDK 2.1.0): public func setHorizontalFlip(_ flip: Bool) -> Void¶
frameRate¶
Gets the current frame rate. Use after a successful open.
- C: float easyar_CameraDevice_frameRate(const easyar_CameraDevice * This)¶
- C++11: float frameRate()¶
- Traditional C++: float frameRate()¶
- Java: public native float frameRate()¶
- Objective-C: - (float)frameRate¶
- Swift (since EasyAR SDK 2.1.0): public func frameRate() -> Float¶
supportedFrameRateCount¶
Gets the number of supported frame rate. Use after a successful open.
- C: int easyar_CameraDevice_supportedFrameRateCount(const easyar_CameraDevice * This)¶
- C++11: int supportedFrameRateCount()¶
- Traditional C++: int supportedFrameRateCount()¶
- Java: public native int supportedFrameRateCount()¶
- Objective-C: - (int)supportedFrameRateCount¶
- Swift (since EasyAR SDK 2.1.0): public func supportedFrameRateCount() -> Int32¶
supportedFrameRate¶
Gets the supported frame rate of index idx . Returns 0 if idx is out of range. Use after a successful open.
- C: float easyar_CameraDevice_supportedFrameRate(const easyar_CameraDevice * This, int idx)¶
- C++11: float supportedFrameRate(int idx)¶
- Traditional C++: float supportedFrameRate(int idx)¶
- Java: public native float supportedFrameRate(int idx)¶
- Objective-C: - (float)supportedFrameRate:(int)idx¶
- Swift (since EasyAR SDK 2.1.0): public func supportedFrameRate(_ idx: Int32) -> Float¶
setFrameRate¶
Sets the frame rate. The proximal value available will be selected, use frameRate to get the frame rate. Use after a successful open.
- C: bool easyar_CameraDevice_setFrameRate(easyar_CameraDevice * This, float fps)¶
- C++11: bool setFrameRate(float fps)¶
- Traditional C++: bool setFrameRate(float fps)¶
- Java: public native boolean setFrameRate(float fps)¶
- Objective-C: - (bool)setFrameRate:(float)fps¶
- Swift (since EasyAR SDK 2.1.0): public func setFrameRate(_ fps: Float) -> Bool¶
size¶
Gets the current preview size. Use after a successful open.
- C: easyar_Vec2I easyar_CameraDevice_size(const easyar_CameraDevice * This)¶
- C++11: Vec2I size()¶
- Traditional C++: Vec2I size()¶
- Java: public native Vec2I size()¶
- Objective-C: - (easyar_Vec2I *)size¶
- Swift (since EasyAR SDK 2.1.0): public func size() -> Vec2I¶
supportedSizeCount¶
Gets the number of supported preview size. Use after a successful open.
- C: int easyar_CameraDevice_supportedSizeCount(const easyar_CameraDevice * This)¶
- C++11: int supportedSizeCount()¶
- Traditional C++: int supportedSizeCount()¶
- Java: public native int supportedSizeCount()¶
- Objective-C: - (int)supportedSizeCount¶
- Swift (since EasyAR SDK 2.1.0): public func supportedSizeCount() -> Int32¶
supportedSize¶
Gets the supported preview size of index idx . Returns {0, 0} if idx is out of range. Use after a successful open.
- C: easyar_Vec2I easyar_CameraDevice_supportedSize(const easyar_CameraDevice * This, int idx)¶
- C++11: Vec2I supportedSize(int idx)¶
- Traditional C++: Vec2I supportedSize(int idx)¶
- Java: public native Vec2I supportedSize(int idx)¶
- Objective-C: - (easyar_Vec2I *)supportedSize:(int)idx¶
- Swift (since EasyAR SDK 2.1.0): public func supportedSize(_ idx: Int32) -> Vec2I¶
setSize¶
Sets the preview size. The proximal value available will be selected, use size to get the actual size. Use after a successful open.
- C: bool easyar_CameraDevice_setSize(easyar_CameraDevice * This, easyar_Vec2I size)¶
- C++11: bool setSize(Vec2I size)¶
- Traditional C++: bool setSize(Vec2I size)¶
- Java: public native boolean setSize(Vec2I size)¶
- Objective-C: - (bool)setSize:(easyar_Vec2I *)size¶
- Swift (since EasyAR SDK 2.1.0): public func setSize(_ size: Vec2I) -> Bool¶
zoomScale¶
Gets the current zoom scale. Use after a successful open.
- C: float easyar_CameraDevice_zoomScale(const easyar_CameraDevice * This)¶
- C++11: float zoomScale()¶
- Traditional C++: float zoomScale()¶
- Java: public native float zoomScale()¶
- Objective-C: - (float)zoomScale¶
- Swift (since EasyAR SDK 2.1.0): public func zoomScale() -> Float¶
setZoomScale¶
Sets the zoom scale. Use after a successful open.
- C: void easyar_CameraDevice_setZoomScale(easyar_CameraDevice * This, float scale)¶
- C++11: void setZoomScale(float scale)¶
- Traditional C++: void setZoomScale(float scale)¶
- Java: public native void setZoomScale(float scale)¶
- Objective-C: - (void)setZoomScale:(float)scale¶
- Swift (since EasyAR SDK 2.1.0): public func setZoomScale(_ scale: Float) -> Void¶
minZoomScale¶
Minimal zoom scale supported. Use after a successful open.
- C: float easyar_CameraDevice_minZoomScale(const easyar_CameraDevice * This)¶
- C++11: float minZoomScale()¶
- Traditional C++: float minZoomScale()¶
- Java: public native float minZoomScale()¶
- Objective-C: - (float)minZoomScale¶
- Swift (since EasyAR SDK 2.1.0): public func minZoomScale() -> Float¶
maxZoomScale¶
Maximal zoom scale supported. Use after a successful open.
- C: float easyar_CameraDevice_maxZoomScale(const easyar_CameraDevice * This)¶
- C++11: float maxZoomScale()¶
- Traditional C++: float maxZoomScale()¶
- Java: public native float maxZoomScale()¶
- Objective-C: - (float)maxZoomScale¶
- Swift (since EasyAR SDK 2.1.0): public func maxZoomScale() -> Float¶
cameraCalibration¶
Gets calibration data. Use after a successful open.
- C: void easyar_CameraDevice_cameraCalibration(const easyar_CameraDevice * This, easyar_CameraCalibration * * Return)¶
- Traditional C++: void cameraCalibration(CameraCalibration * * Return)¶
- Java: public native CameraCalibration cameraCalibration()¶
- Objective-C: - (easyar_CameraCalibration *)cameraCalibration¶
- Swift (since EasyAR SDK 2.1.0): public func cameraCalibration() -> CameraCalibration?¶
setFlashTorchMode¶
Sets flash torch mode to on . Use after a successful open.
- C: bool easyar_CameraDevice_setFlashTorchMode(easyar_CameraDevice * This, bool on)¶
- C++11: bool setFlashTorchMode(bool on)¶
- Traditional C++: bool setFlashTorchMode(bool on)¶
- Java: public native boolean setFlashTorchMode(boolean on)¶
- Objective-C: - (bool)setFlashTorchMode:(bool)on¶
- Swift (since EasyAR SDK 2.1.0): public func setFlashTorchMode(_ on: Bool) -> Bool¶
setFocusMode¶
Sets focus mode to focusMode . Use after start.
- C: bool easyar_CameraDevice_setFocusMode(easyar_CameraDevice * This, easyar_CameraDeviceFocusMode focusMode)¶
- C++11: bool setFocusMode(CameraDeviceFocusMode focusMode)¶
- Traditional C++: bool setFocusMode(CameraDeviceFocusMode focusMode)¶
- Java: public native boolean setFocusMode(/* CameraDeviceFocusMode */ int focusMode)¶
- Objective-C: - (bool)setFocusMode:(easyar_CameraDeviceFocusMode)focusMode¶
- Swift (since EasyAR SDK 2.1.0): public func setFocusMode(_ focusMode: CameraDeviceFocusMode) -> Bool¶
projectionGL¶
Returns projection matrix.
- C: easyar_Matrix44F easyar_CameraDevice_projectionGL(easyar_CameraDevice * This, float nearPlane, float farPlane)¶
- C++11: Matrix44F projectionGL(float nearPlane, float farPlane)¶
- Traditional C++: Matrix44F projectionGL(float nearPlane, float farPlane)¶
- Java: public native Matrix44F projectionGL(float nearPlane, float farPlane)¶
- Objective-C: - (easyar_Matrix44F *)projectionGL:(float)nearPlane farPlane:(float)farPlane¶
- Swift (since EasyAR SDK 2.1.0): public func projectionGL(_ nearPlane: Float, _ farPlane: Float) -> Matrix44F¶