Agora Java API Reference for Android
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
io.agora.rtc.video.VideoCaptureCamera2 Class Reference
Inheritance diagram for io.agora.rtc.video.VideoCaptureCamera2:
io.agora.rtc.video.VideoCapture

Public Member Functions

int UnRegisterNativeHandle ()
 
int allocate ()
 
int setCaptureFormat (int format)
 
int startCapture (int width, int height, int frameRate)
 
int stopCapture ()
 
boolean isTorchSupported ()
 
boolean isFocusSupported ()
 
boolean isExposureSupported ()
 
boolean isZoomSupported ()
 
boolean isAutoFaceFocusSupported ()
 
int setZoom (float zoomValue)
 
float getMaxZoom ()
 
int setTorchMode (boolean isTorchOn)
 
int setFocus (float valX, float valY, boolean inPreview)
 
int setExposure (float valX, float valY, boolean inPreview)
 
int setAutoFaceFocus (boolean enable)
 
void deallocate ()
 
- Public Member Functions inherited from io.agora.rtc.video.VideoCapture
abstract int allocate ()
 
abstract int setCaptureFormat (int format)
 
abstract int startCapture (int width, int height, int frameRate)
 
abstract int stopCapture ()
 
abstract boolean isTorchSupported ()
 
abstract boolean isFocusSupported ()
 
abstract boolean isZoomSupported ()
 
abstract boolean isAutoFaceFocusSupported ()
 
abstract int setZoom (float zoomValue)
 
abstract float getMaxZoom ()
 
abstract int setTorchMode (boolean isTorchOn)
 
abstract int setFocus (float x, float y, boolean inPreview)
 
abstract int setAutoFaceFocus (boolean enable)
 
abstract boolean isExposureSupported ()
 
abstract int setExposure (float x, float y, boolean inPreview)
 
abstract int UnRegisterNativeHandle ()
 
abstract void deallocate ()
 
native void ProvideCameraFrame (byte[] data, int length, long nativeVideoCaptureDeviceAndroid)
 
native void ProvideCameraTexture (byte[] data, int textureID, long nativeVideoCaptureDeviceAndroid)
 
native boolean isAutoFaceFocusEnabled (long nativeVideoCaptureDeviceAndroid)
 
native void NotifyCameraFocusAreaChanged (float x, float y, float width, float height, long nativeVideoCaptureDeviceAndroid)
 
native void NotifyCameraExposureAreaChanged (float x, float y, float width, float height, long nativeVideoCaptureDeviceAndroid)
 
native void onCameraError (long nativeVideoCaptureDeviceAndroid, String message)
 

Static Public Member Functions

static int createCapabilities (int id, Context context)
 
- Static Public Member Functions inherited from io.agora.rtc.video.VideoCapture
static String fetchCapability (int id, Context appContext, String captureName)
 
static void cacheCapability (int id, Context appContext, String cap, String captureName)
 
static int translateToEngineFormat (int fmt)
 
static int translateToAndroidFormat (int fmt)
 
static boolean isEmulator ()
 

Public Attributes

CameraManager.AvailabilityCallback mAvailabilityCallback
 

Additional Inherited Members

- Protected Attributes inherited from io.agora.rtc.video.VideoCapture
int mCameraNativeOrientation
 
final Context mContext
 
final int mId
 
long mNativeVideoCaptureDeviceAndroid
 

Detailed Description

This class implements Video Capture using Camera2 API, introduced in Android API 21 (L Release). Capture takes place in the current Looper, while pixel download takes place in another thread used by ImageReader. A number of static methods are provided to retrieve information on current system cameras and their capabilities, using android.hardware.camera2.CameraManager.

Member Function Documentation

◆ setZoom()

int io.agora.rtc.video.VideoCaptureCamera2.setZoom ( float  zoomValue)
Parameters
zoomValue1.0f - maxZoom
Returns
-3 camera access exception -2 zoom not supported -1 no need to zoom, not valid value (not in valid range (1.0f - maxZoom] or equals to current zoom value 0 success

Member Data Documentation

◆ mAvailabilityCallback

CameraManager.AvailabilityCallback io.agora.rtc.video.VideoCaptureCamera2.mAvailabilityCallback
Initial value:
= new CameraManager.AvailabilityCallback() {
@Override
synchronized public void onCameraAvailable(String cameraId) {
super.onCameraAvailable(cameraId);
if (mCameraState == CameraState.EVICTED) {
if (tryOpenCamera() == 0) {
if(mNativeVideoCaptureDeviceAndroid != 0) {
onCameraError(mNativeVideoCaptureDeviceAndroid, "no error");
}
} else {
Logging.e(TAG, "start capture failed");
}
}
}
@Override
synchronized public void onCameraUnavailable(String cameraId) {
super.onCameraUnavailable(cameraId);
Logging.e(TAG, "Camera " + cameraId + " unavailable");
}
}