ICameraManager
Interface that may be used to manage cameras on Android device.
Methods
addCameraEventsListener
void
addCameraEventsListener( cameraEventsListener)
Add ICameraEventsListener to be notified about camera events
Parameters
cameraEventsListener:
ICameraEventsListener instance
Returns
type:
void
enableCameraFlash
void
enableCameraFlash(boolean
enable)
Enable or disable camera flash if it exists.
Camera flash is disabled by default.
Can be called in any camera state.
Parameters
enable:
boolean
True, if the camera flash should be enabled, false otherwise.
Returns
type:
void
getCameraDeviceNames
String[]
getCameraDeviceNames()
Get available camera device names.
Returns
type:
String[]
getCameraSupportedResolutions
List<CameraResolution>
getCameraSupportedResolutions(String
cameraName)
Get all supported resolutions of the specified camera.
Parameters
cameraName:
String
Camera name to request supported resolutions
Returns
type:
List<CameraResolution>
getSelectedCameraIndex
int
getSelectedCameraIndex()
Get the index of the selected camera.
Can be 0 for a back facing camera, 1 for a front facing camera, or -1 if a camera facing mode is unspecified.
Returns
type:
int
removeCameraEventsListener
void
removeCameraEventsListener( cameraEventsListener)
Remove previously added ICameraEventsListener
Parameters
cameraEventsListener:
ICameraEventsListener instance
Returns
type:
void
setCamera
void
setCamera(int
cameraIndex, quality)
Select a camera and the local video frame resolution quality.
Parameters
cameraIndex:
int
Should be 0 for a back facing camera and 1 for a front facing camera
quality:
Quality for local video
Returns
type:
void
Throws
IllegalArgumentException if a camera with the specified index does not exist on the device
setCamera
void
setCamera(String
cameraName, quality)
Select a camera and the local video frame resolution quality.
Limitation for SDK versions below 2.41.0:
If a camera is opened and is currently capturing the video, it is not possible to switch to another camera of the same type. If no camera is used in the moment, it is possible to select any camera and the selected camera will start in a video call.
For example, if a device has multiple back cameras and one of them is currently capturing the video in a call, it is not possible to switch to another back camera. The same is applied to the front facing cameras. However, it is allowed to change an active back camera to front camera with a specific name (or vice verse).
Parameters
cameraName:
String
Camera name from the list of available cameras on a device
quality:
Quality for local video
Returns
type:
void
Throws
IllegalArgumentException if a camera with the specified name does not exist on a device
setCamera
void
setCamera(int
cameraIndex, int
frameWidth, int
frameHeight)
Select a camera and the local video frame resolution.
The camera will capture frames in a format that is as close as possible to frameWidth x frameHeight.
Parameters
cameraIndex:
int
Should be 0 for a back facing camera or 1 for a front facing camera
frameWidth:
int
Camera resolution width
frameHeight:
int
Camera resolution height
Returns
type:
void
Throws
IllegalArgumentException if a camera with the specified index does not exist on the device
setCamera
void
setCamera(String
cameraName, int
frameWidth, int
frameHeight)
Select a camera and the local video frame resolution.
Camera will capture frames in a format that is as close as possible to frameWidth x frameHeight.
Limitation for SDK versions below 2.41.0:
If a camera is opened and is currently capturing the video, it is not possible to switch to another camera of the same type. If no camera is used in the moment, it is possible to select any camera and the selected camera will start in a video call.
For example, if a device has multiple back cameras and one of them is currently capturing the video in a call, it is not possible to switch to another back camera. The same is applied to the front facing cameras. However, it is allowed to change an active back camera to front camera with a specific name (or vice verse).
Parameters
cameraName:
String
Camera name from the list of available cameras on a device
frameWidth:
int
Camera resolution width
frameHeight:
int
Camera resolution height
Returns
type:
void
Throws
IllegalArgumentException if a camera with the specified name does not exist on a device
useOrientationEventListener
void
useOrientationEventListener(boolean
use)
Use OrientationEventListener to detect the device rotation and to rotate camera frames according to device orientation.
By default, Display rotation is used to determine the device rotation.
The way how the device orientation is detected, affects camera frames rotation on local and remote side if auto-rotate is disabled on a mobile phone:
- OrientationEventListener will detect landscape orientation
- Display rotation will always report portrait orientation
The method should be called in idle camera state, i.e. video is currently not sending in a call.
Parameters
use:
boolean
True, if OrientationEventListener should be used to detect the device orientation, otherwise Display rotation is used.
Returns
type:
void